【发布时间】:2011-08-30 18:36:00
【问题描述】:
如果我这样做:
while(1) {
//retrieve image from the camera
webCamImage=cvQueryFrame(camera) // where 'camera' is cvCreateCameraCapture(0)
//do some heavy processing on the image that may take around half a second
funcA()
}
现在当我进行连续迭代时,webCamImage 似乎滞后了!
即使我移动相机,webCamImage 也需要很长时间才能更新到新的视野,并且它会不断显示和处理以前的视野相机帧。
我假设 cvQuery 有一些用于检索帧的缓冲区。
您能告诉我如何在每次迭代中获取更新的相机视图吗?
非常感谢
【问题讨论】:
-
考虑一下,也许低于 opencv 的层可能有超出你控制范围的缓冲区,所以它可能不是那么容易。或许你可以创建一个线程来处理,只在需要时调用
cvRetrieveFrame(注意同步问题)和一个定期调用cvGrabFrame的主线程。 -
很难回答您的问题,因为 OpenCV 可以使用多达 15 种不同的 API 进行视频捕获(详情请参阅 this post)。请发布有关您的操作系统和 OpenCV 版本的更多信息(如果您自己编译了 OpenCV,则您下载了哪些二进制文件或 cmake 输出)。