所以我实际上正在做一个增强现实的项目。我使用openCV从2台相机拍摄照片。
这些相机的效率并不高,我认为它们的最高帧速率在30帧左右。
如果我在每个帧刷新程序中的相机帧(通过读取方法),则应用程序的fps约为25 fps。如果我不刷新它,它大约是每秒55帧。
我想这个延迟是因为openCV在进入程序的下一步之前等待相机生成新帧。
但我需要至少所有的虚拟对象都以55帧/秒的速度渲染imersion。如果videoCapture对象中没有帧,他们是否可以说openCV跳转到下一个调用?
如果没有办法,是否有其他跨平台API可以更有效地控制摄像机?
Thx!
我从未在C++中使用过OpenCV,但我认为这是一样的。我正在使用OpenCV4Android,当一帧进入时,我需要做一些事情,如果你把你的过程放在onCameraFrame()函数中,它实际上会减慢fps(我想它就像C++中的read()函数),因为只有当帧返回时,下一帧才会进入。
我的解决方案是使用另一个线程来处理帧。在read()函数中,您可以设置标志来指示帧是否在videoCapture对象中,然后使用进程线程检查标志,如果有,则进行处理。fps会更好