由于捕获缓冲区,通过网络摄像头捕获视频可能会出现延迟,其中帧在读取之前被存储。当读取帧的速率低于捕获帧的速率时,就会出现此问题,从而导致缓冲区中的帧累积。
在 OpenCV 中,您可以使用 CV_CAP_PROP_BUFFERSIZE 设置 VideoCapture 对象的缓冲区大小:
<code class="cpp">cv::VideoCapture cap; cap.set(CV_CAP_PROP_BUFFERSIZE, 3); // Store only 3 frames in the buffer</code>
如果 OpenCV 解决方案没有不起作用,您可以使用以下技巧:
另一种破解方法涉及使用第三个线程高速连续抓取帧以保持缓冲区为空:
以上是为什么我的 OpenCV VideoCapture 滞后,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!