Java 如何在Android相机预览中使用OpenCV方法

Java 如何在Android相机预览中使用OpenCV方法,java,android,opencv,camera,android-camera,Java,Android,Opencv,Camera,Android Camera,我想通过使用OpenCV的Imgproc函数从相机预览捕获的图像中进行一些图像处理 问题是我已经使用Camera.PreviewCallback从Android摄像头预览中获取图像。但我在OpenCV中看到,我们需要使用另一个名为CvCameraViewListener2的预览 那么,我是否必须将我的所有内容从自定义预览重做到OpenCV预览?我可以在没有CvCameraViewListener2的情况下使用OpenCV函数吗?或者CvCameraViewListener2和Camera.Pre

我想通过使用OpenCV的Imgproc函数从相机预览捕获的图像中进行一些图像处理

问题是我已经使用Camera.PreviewCallback从Android摄像头预览中获取图像。但我在OpenCV中看到,我们需要使用另一个名为CvCameraViewListener2的预览

那么,我是否必须将我的所有内容从自定义预览重做到OpenCV预览?我可以在没有CvCameraViewListener2的情况下使用OpenCV函数吗?或者CvCameraViewListener2和Camera.PreviewCallback的工作原理相同,而且从一个切换到另一个很简单

我已经使用的:

public class MyClass implements Camera.PreviewCallback
在OpenCV中:

public class MyClass implements CvCameraViewListener2 {

经过更多的研究,感谢这篇文章:我可以说答案是肯定的。我们可以使用OpenCV方法,而不必使用CvCameraViewListener2

我刚刚初始化了OpenCV库,我想在其中使用我的图像处理(这里解释了步骤10:)。然后我可以使用OpenCV方法

我可以得到用于OpenCV的矩阵,例如:

img = new Mat(height, width, CvType.CV_8UC1);

SurfaceHolder.Callback
实现了SurfaceView生命周期中的3种方法,它不用于捕获预览帧
CvCameraViewListener2
在某种程度上类似于
Camera.PreviewCallback
界面。请注意,您的
img
仅为灰度。另一方面,CvCameraViewListener2允许您接收RGBA。如果你需要颜色,看看哦,好的,这可能是有用的,在我的情况下,我只需要灰度,但很高兴知道。