openCV - 网络摄像头的视频捕捉 - 延迟问题

时间:2014-04-21 08:43:05

标签: c++ opencv camera augmented-reality

所以我实际上正在制作一个增强现实的项目。 我使用openCV从2台相机拍照。

那些相机并不高效,我认为它们的最大光圈大约是30 fps。

如果我在每帧的程序中刷新相机帧(通过读取方法),则应用程序的fps约为25 fps。如果我不刷新它大概是55 fps。

我认为这种延迟是因为在进入程序的下一步之前,摄像机会生成openCV 等待新帧

但我需要至少所有虚拟对象以55 fps的速度呈现给imersion。如果 videoCapture 对象中没有框架,他们是否可以说openCV跳转到下一个电话?

如果没有其他跨平台API可以提高相机控制的效率吗?

THX!

1 个答案:

答案 0 :(得分:1)

我从不在C ++中使用OpenCV,但我认为这是相同的。我正在使用OpenCV4Android,当框架进来时我需要做一些事情,如果你把你的程序放在onCameraFrame()函数中(我猜它就像C ++中的read()函数),它会慢慢fps,因为只有当帧返回,下一帧即将进入。

我的解决方案是使用另一个线程来处理帧。你在read()函数中可以做的是设置标志以指示帧是否在videoCapture对象中,然后使用进程线程检查标志,如果有,则处理它。 fps会更好。