วิธีใช้วิธี OpenCV ใน Android Camera Preview

ฉันต้องการประมวลผลภาพโดยใช้ฟังก์ชัน Imgproc ของ OpenCV จากภาพที่ถ่ายโดยการแสดงตัวอย่างกล้อง

ปัญหาคือฉันใช้ Camera.PreviewCallback เพื่อรับภาพจากตัวอย่างกล้อง Android อยู่แล้ว แต่ฉันเห็นว่าใน OpenCV เราจำเป็นต้องใช้การแสดงตัวอย่างอื่นที่เรียกว่า CvCameraViewListener2

ฉันจะต้องทำซ้ำเนื้อหาทั้งหมดของฉันจากการแสดงตัวอย่างแบบกำหนดเองไปเป็น OpenCV หรือไม่ ฉันสามารถใช้ฟังก์ชั่น OpenCV โดยไม่มี CvCameraViewListener2 ได้ไหม หรือ CvCameraViewListener2 และ Camera.PreviewCallback ทำงานเหมือนกัน และง่ายต่อการสลับจากที่หนึ่งไปยังอีกที่หนึ่ง ?

สิ่งที่ฉันใช้อยู่แล้ว:

public class MyClass implements Camera.PreviewCallback

ใน OpenCV :

public class MyClass implements CvCameraViewListener2 {

person Brian    schedule 06.01.2016    source แหล่งที่มา
comment
SurfaceHolder.Callback ใช้ 3 วิธีที่เป็นไปตามวงจรชีวิตของ SurfaceView แต่ไม่ได้ใช้เพื่อจับภาพเฟรมแสดงตัวอย่าง CvCameraViewListener2 มีความคล้ายคลึงกับอินเทอร์เฟซ Camera.PreviewCallback ในระดับหนึ่ง   -  person Alex Cohn    schedule 06.01.2016


คำตอบ (1)


หลังจากการค้นคว้าเพิ่มเติมแล้ว ขอขอบคุณโพสต์นี้: ไม่สามารถ ในการใช้กล้องทั้งสองตัวของ Evo 4G โดยใช้ OpenCV4Android บอกได้เลยว่าคำตอบคือใช่ เราสามารถใช้วิธี OpenCV โดยไม่ต้องใช้ CvCameraViewListener2

ฉันเพิ่งเริ่มต้น OpenCV lib โดยที่ฉันต้องการใช้การประมวลผลรูปภาพของฉัน (อธิบายที่นี่ขั้นตอนที่ 10 : http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html) จากนั้นฉันก็สามารถใช้วิธี OpenCV ได้

และฉันสามารถรับเมทริกซ์เพื่อใช้กับ OpenCV ได้เช่น:

img = new Mat(height, width, CvType.CV_8UC1);
person Brian    schedule 06.01.2016
comment
โปรดทราบว่า img ของคุณเป็นระดับสีเทาเท่านั้น ในทางกลับกัน CvCameraViewListener2 ให้คุณรับ RGBA หากคุณต้องการสี โปรดดูที่ stackoverflow.com/a/16704897/192373 - person Alex Cohn; 06.01.2016
comment
โอ้ ตกลง สิ่งนี้มีประโยชน์ ในกรณีของฉัน ฉันต้องการแค่ระดับสีเทา แต่ก็ดีที่ได้รู้ - person Brian; 06.01.2016