将android预览帧转换为OpenCV Mat

时间:2012-03-10 16:07:32

标签: android opencv camera

我正在尝试从相机预览中捕获图像并使用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);

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

1 个答案:

答案 0 :(得分:9)

你看过OpenCV样本是如何做到的吗?

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

....

mYuv.put(0, 0, data);

可以在SourceForge的Android软件包中找到完整的源代码,也可以在此处找到: http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/Sample1View.java