OpenCV 3.0 with Python 2.7.10 VideoCapture.read()返回旧框架

时间:2015-10-29 16:28:14

标签: python opencv

我目前正在通过Windows中的Python绑定使用OpenCV 3.0。

直到几天前,我才使用OpenCV 2.4,它随我安装的Python(x,y)发行版一起发布。

使用OpenCV 2.4,当我调用VideoCapture.read()时,捕获设备捕获了一个图像并立即返回它。太棒了。

在OpenCV 3.0中,行为似乎很奇怪。一旦我创建捕获设备,它似乎捕获帧。该帧是VideoCapture.read()返回的第一帧。下次调用VideoCapture.read()会将第一次调用期间捕获的图像返回VideoCapture.read(),依此类推。

我尝试使用VideoCapture.grab()VideoCapture.retrieve(),但我看到了同样奇怪的行为。事实上,如果我反复拨打VideoCapture.retrieve()(不拨打grab()read(),我会继续拨打新的电话。

我找不到其他人遇到此问题,或者此行为的任何文档都发生了变化。

我自己尝试构建OpenCV 3.0,并使用Windows安装程序附带的预编译版本,它们具有相同的行为。我在OpenCV 2.4和OpenCV 3.0上都使用相同的网络摄像头,所以这也不是问题。

这是OpenCV 3.0的预期行为吗?有没有办法恢复2.4行为,而不是每次我想拍快照时都会发出两个读取请求?

0 个答案:

没有答案