安卓preVIEW帧转​​换为OpenCV的垫preVIEW、帧转、OpenCV

2023-09-06 04:03:59 作者:草莓酸奶

我试图捕捉从相机preVIEW图像并使用OpenCV的转换为垫目标。 我注册了callbak方法在previewFrame公共无效(byte []的数据,摄像头摄像头),所以我收到相机中的所有preVIEW框架,但我可以弄不明白转换为OpenCV的垫目标。

I'm trying to capture an image from the camera preview and convert it to a Mat object using OpenCV. I registered the callbak method public void onPreviewFrame(byte[] data, Camera camera) so I receive all preview frames from the camera, but I can't get it to convert to OpenCV Mat object.

我目前使用下面的code转换的preVIEW 数据来一个垫目标:

I'm currently using the following code to convert the preview data to a Mat object:

Mat previewFrameMat = new Mat(1, data.length, CvType.CV_8U);
previewFrameMat.put(0, 0, data);

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

Is this the correct way to do it ? Am I using the correct image type (CvType.CV_8U) ?

推荐答案

你见过OpenCV的样本如何做到这一点?

Have you seen how OpenCV samples do this?

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

....

mYuv.put(0, 0, data);

完整源代码可以在Android包从SourceForge或在这里找到: http://$c$c.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/Sample1View.java

Full source can be found in the Android package from SourceForge or here: http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/samples/android/tutorial-1-addopencv/src/org/opencv/samples/tutorial1/Sample1View.java