我应该将帧转换为在openCV

时间:2016-11-11 13:17:21

标签: android image-processing bitmap android-camera opencv4android

在我的应用程序中,我打开本机安卓摄像头并在TextureView上渲染预览,我接下来要做的是从摄像机拍摄每个帧并使用OpenCV库执行一些处理和操作。

我还在这里提到了一些帖子Android decode Bitmap from Camera Previewhow to get RGB values of bitmap in androidHow to capture preview image frames from Camera Application in Android Programming?

但我不知道我应该转换检索到的帧的格式,特别是我想在opeCV中使用它,如前所述,哪种格式会产生良好的性能,我应该将它们转换为YUV,JPEG还是NV21?

更新

之所以我想使用原生的Android相机,然后将从相机中检索到的帧转换为适用于openCV的另一种格式,当我使用CvCameraViewListener2时,总会有一个黑色区域环绕相机预览,如下图所示图片,我无法摆脱它,所以我决定使用原生的Android相机

图片

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您的活动实现了OpenCV的CameraBridgeViewBase.CvCameraViewListener2,它还将实现带有CvCameraViewFrame参数的onCameraFrame方法。

您可以从中获取灰度或RGBA格式的图像。 This guy does it in this tutorial。本教程是关于集成本机C ++ OpenCV代码的,但如果您不需要这样做,请注意他在MainActivity上工作的部分。

编辑:如果您可以将预览框架的数据作为字节数组访问,那么您是否尝试过将这些数据放入垫子中?

Mat foo = new Mat(height, width, type); //type is probably CvType.CV_8UC1
foo.put(0, 0, data);
相关问题