最近想借由opencv的影像撷取函式库来撷取USB camera输出每个不重复的frame
查了opencv doc相关章节描述如下
virtual bool cv::VideoCapture::read(OutputArray image)
Grabs, decodes and returns the next video frame.
Parameters
[out] image the video frame is returned here. If no frames has been
grabbed the image will be empty.
Returns
false if no frames has been grabbed
原本以为以read的方式也是frame base 去polling
(从frame buffer抓完一个frame后就从buffer清掉该frame
下一次polling会抓到下个frame)
预期当我把camera关掉并停止输出frame后,read应该要抓到empty image
但实际上用image.empty()去检查抓到的image都不是empty
如此一来用polling的方式撷图就会撷到重复的frame
我看网络上其他范例也都是使用方法也都是由cpature.read方式不断polling frame
想请问opencv是否有办法借由callback方式撷取影像