Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在做一个项目,我需要每隔一秒(或两秒)从 IP 摄像机中检索帧并以某种方式处理它。初始化捕获后
CvCapture* capture = cvCaptureFromFile(ipSource);
我从引入一(或两)秒延迟的循环中获取帧 -
frame = cvQueryFrame(capture);
问题 - 我只得到连续的帧(我想来自缓冲区),而不是我试图得到它的那一刻的帧。我应该怎么做才能在我想要的那一刻获得框架?
cvQueryFrame实际上调用cvGrabFrame()然后cvRetrieveFrame()。第一个函数从相机中检索图像并将其存储在内部。第二帧实际上将其解压缩并将 IPLImage 返回给您。您可以手动调用它并将您的处理器繁重的代码放在它们之间。
cvQueryFrame
cvGrabFrame()
cvRetrieveFrame()
其他选项(快速和肮脏)是运行一个不同的线程,它将连续抓取帧。然后,您可以轻松获得最新帧。
希望有帮助..