将android预览帧转换为OpenCV Mat

Muz*_*ant 8 camera android opencv

我正在尝试从相机预览中捕获图像并使用OpenCV将其转换为Mat对象.我注册了callbak方法,public void onPreviewFrame(byte[] data, Camera camera)所以我从相机接收所有预览帧,但我无法将其转换为OpenCV Mat对象.

我目前正在使用以下代码将预览转换data为Mat对象:

Mat previewFrameMat = new Mat(1, data.length, CvType.CV_8U);
previewFrameMat.put(0, 0, data);
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?我使用的是正确的图像类型(CvType.CV_8U)吗?

And*_*aev 9

您是否看过OpenCV样本如何做到这一点?

mYuv = new Mat(getFrameHeight() + getFrameHeight() / 2, 
    getFrameWidth(), CvType.CV_8UC1);

....

mYuv.put(0, 0, data);
Run Code Online (Sandbox Code Playgroud)

完整源代码可以在SourceForge的Android包中找到,也可以在这里找到:http: //code.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples/android/tutorial-1-addopencv/src/org/的OpenCV /样品/教程1/Sample1View.java