web-dev-qa-db-ja.com

OpenCV 2.4 VideoCaptureがWindowsで機能しない

Python次の 命令 でインストールされたOpenCV 2.4へのバインディングを使用しています。

私の問題は this one に似ていますが、Windowsマシンソリューションが必要です。

問題:使用しようとすると

cap = cv2.VideoCapture(0)
print cap.grab()

それは正常に動作しますが、次のコード

cap = cv2.VideoCapture(filename)
print cap.grab()

常にFalseを返します。

ファイルへのパスは正しい、絶対パスであり、スペースはありません。

Windows XPとWindows 7で同様の結果が得られる2台のマシンで試しました。Linux(Ubuntu)ではうまく動作します。

47
Bihaqo

C:\OpenCV\3rdparty\ffmpeg\をWindows PATH環境変数に追加するか、opencv_ffmpeg.dllをそのディレクトリからC:\Python27\またはPATHにあるディレクトリにコピーします。または、 http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv からOpenCVバイナリを使用します。

opencv_ffmpeg.dllファイルの名前変更も必要になる場合があります。

OpenCVバージョンX.Y.Zの場合
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ.dll

64ビットOpenCVバージョンX.Y.Zの場合
opencv_ffmpeg.dll ==> opencv_ffmpegXYZ_64.dll

71
cgohlke

opencv_ffmpeg.dllをコピーするだけでは十分ではありません-名前をopencv_ffmpeg246.dll、OpenCV 2.4.6をPython 2.7.5

29
emem

私は最初にコピーを試み、次にウィンドウのパス環境を変更しました。openCVバージョン2.4.5およびpython 2.7。の名前をopencv_ffmpeg245.dllに変更するまで機能しませんでした** 245.dllはopencvバージョン2.4.5のものです)

10
SanD

64ビットバージョンの場合、opencv_ffmpeg_64.dllの名前をopencv_ffmpeg249_64.dllに変更します。249をopencvバージョンに変更します。

8
user3738775

64ビット環境のOpenCV 3.0.0の場合、opencv_ffmpeg_64.dllをコピーして、名前をopencv_ffmpeg300_64.dllに変更します。

また、このパスをPATH環境変数に追加して、JavaでOpenCVで動作するようにします。

6
masewo

更新:これはOpenCV 2.4.9にも当てはまり、すべてのファイルをコピーして、dllの名前をopencv_ffmpeg249.dllに変更します

5
bw4sz

python 2.7とopencv 2.4.10でも同じ問題が発生しました。 opencv_ffmpeg2410_64.dllファイルをC:\ Applications\opencv\build\x64\vc10\binからpythonパスにコピーしました(私の場合はC:\ Users\mohammad\Anacondaにあります)。

4
user1947921

最初は、windows8.1 32bitとopencv 2.4.10を使用します。
Logicool C270で作成されたファイルtest1.wmvを使用するのと同じ問題に直面しました。
他のファイルtest2.movを使用しようとしましたが、これはDigital Camera(Canon SX160)によって作成されました。したがって、test2.movを再生してパスC:\opencv\build\x86\vc12\binを追加できます。
しかし、test1.wmv.を再生できません
だから、VLC(to Video for youtube HD)を使用して、test1.wmvの形式をtest1a.mp4に変更しようとしています。
その後、test1a.mp4.をプレイできます
Ubuntu 14.04 LTSでtest1.wmvを試した後、簡単にプレイできます。
windows8.1とUbuntu 14.04 LTSの間で、デフォルトのffmpegバイナリに何らかの違いが生じる可能性があります。

3
user

Anaconda環境の場合、C:\ Python27 \からopencv_ffmpeg249_64.dllをコピーし、opencvの正しいバージョンに応じてバージョンを変更し、C:\ Users\KHALID\Anaconda2\Library\bin

0
Khalid Bin Huda