在Android本机代码中的cv :: VideoCapture

时间:2012-06-07 08:31:15

标签: opencv android-ndk

我在本机代码中使用cv :: VideoCapture,我遇到了问题: 在android java代码中,Videocapture提供了一个Yuv420帧,在本机代码中它是一个BGR。因为我需要一个灰色图像,所以拥有一个Yuv图像会更好(我读过将Yuv转换为GRAY没有任何成本)。

以下是我的问题:

即时通讯使用华硕TF201,获取一个帧需要大约26毫秒,这是很多...作为标准的Android相机API给予Yuv的原始版本的VideoCapture执行转换? (这可以解释时间成本)

是否可以使用CV_CAP_PROP_FORMAT更改格式?每当我尝试mycapture.get(CV_CAP_PROP_FORMAT)我的应用程序崩溃...

编辑:Andrey Kamaev回答了这个问题。我必须使用抓取/检索方法在第二个中添加一个参数:

capture.retrieve(frame, CV_CAP_ANDROID_GRAY_FRAME);

由于

1 个答案:

答案 0 :(得分:1)

查看适用于Android的OpenCV示例。他们中的大多数都是从VideoCapture对象获取灰色图像:

capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);

在内部,这个灰色图像以最有效的方式从yuv420帧“转换” - 即使没有额外的复制。