OpenCV 2.4 VideoCapture不能在Windows上工作
我使用的Python绑定到OpenCV 2.4安装与下面的说明 。
我的问题是类似于这个 ,但我需要Windows机器解决scheme。
问题:当我尝试使用
cap = cv2.VideoCapture(0) print cap.grab()
它工作正常,但下面的代码
cap = cv2.VideoCapture(filename) print cap.grab()
总是返回False。
该文件的path是正确的,绝对的,没有空格。
我试着在Windows XP和Windows 7上的两台机器上得到类似的结果。 在Linux(Ubuntu)上对我来说工作正常。
将C:\OpenCV\3rdparty\ffmpeg\
到Windows PATH环境variables,或将opencv_ffmpeg.dll
从该目录复制到C:\Python27\
或PATH中的目录。 或者,使用http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv中的OpenCV二进制文件。;
重命名opencv_ffmpeg.dll
文件可能也是必要的。
对于OpenCV版本XYZ
opencv_ffmpeg.dll
==> opencv_ffmpegXYZ.dll
对于64位OpenCV版本XYZ
opencv_ffmpeg.dll
==> opencv_ffmpegXYZ_64.dll
复制opencv_ffmpeg.dll对我来说还不够 – 我不得不将它重新命名为opencv_ffmpeg246.dll ,当我在Python 2.7.5中使用OpenCV 2.4.6
我第一次尝试复制,然后更改窗口的path环境..它不工作,直到我改名为opencv_ffmpeg245.dll为我的openCV版本2.4.5和python 2.7。 (注意** 245.dll来自opencv版本2.4.5)
对于64位版本,请将opencv_ffmpeg_64.dll重命名为opencv_ffmpeg249_64.dll将249更改为您的opencv版本。
对于64位环境下的OpenCV 3.0.0,请复制opencv_ffmpeg_64.dll并将其重命名为opencv_ffmpeg300_64.dll。
还要把这个path添加到你的PATH环境variables中,以便在Java下使用OpenCV。
更新:这仍然是为OpenCV 2.4.9,复制所有的文件,并重命名DLL opencv_ffmpeg249.dll
我有与python 2.7和opencv 2.4.10相同的问题。 我将opencv_ffmpeg2410_64.dll文件从C:\ Applications \ opencv \ build \ x64 \ vc10 \ bin复制到pythonpath(我的是在C:\ Users \ mohammad \ Anaconda),并解决了!
起初我使用windows8.1 32bit和opencv 2.4.10。
我使用test1.wmv
制作的test1.wmv文件面临同样的问题。
我试图使用由数码相机(佳能SX160)制作的其他文件test2.mov
。 所以我可以玩test2.mov
来追加pathC:\opencv\build\x86\vc12\bin
。
但是我不能玩test1.wmv.
所以我尝试通过使用VLC( Video for youtube HD
)将格式test1.wmv更改为test1a.mp4。
然后我可以玩test1a.mp4.
我在Ubuntu 14.04 LTS上尝试了test1.wmv
,然后我可以轻松地玩。
在windows8.1和Ubuntu 14.04 LTS之间,默认的ffmpeg二进制文件可能会有一些不同。
对于anaconda环境,从C:\ Python27 \复制opencv_ffmpeg249_64.dll ,根据您的opencv正确版本重新命名它的版本,并将其重命名为C:\ Users \ KHALID \ Anaconda2 \ Library \ bin