2017-11-10 5 views
2

OpenCV 2.4.9でpythonを使用してビデオファイルを読み込み(および表示する)ことに問題があります。 cv2.imread()を取得して同じディレクトリから画像を読み取ることができたので、ファイルを見つけることに問題はないことが分かりました。間違いなくcv2.VideoCapture()の問題です。ここで私はなってきたコードと出力があります:OpenCV 2.4.9 VideoCapture()はEnthought Python 2.7環境でビデオファイルを読み込みません

import cv2 
import numpy as np 

    testvid = cv2.VideoCapture('testvid.avi') 

while(1): 
    ret, frame = testvid.read() 
    print ret 

    cv2.imshow('frame',frame) 
    k = cv2.waitKey(30) & 0xff 
    if k == 27: 
     break 

testvid.release() 
cv2.destroyAllWindows() 

出力:

False 

error: C:\pisi\tmp\opencv-2.4.9-5\work\opencv-2.4.9\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow 
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file C:\pisi\tmp\opencv-2.4.9-5\work\opencv-2.4.9\modules\highgui\src\window.cpp, line 261 

私は同じ問題を持っていた何人かの人々が存在しています知っています。 This threadthis treadはどちらも、あなたのバージョンに合わせてopencv_ffmpeg.dllファイルの名前を変更し、それをあなたのパスのメインのpythonディレクトリまたはディレクトリ(またはそれに相当するもの)にコピーする必要があると言って問題を解決します。

しかし、私はEnthought(私の教授の推薦により)を使ってPython 2.7.13を使用しています。パスとウェイのライブラリとパッケージは、他のスレッドとはまったく異なっているようです。 EnthoughtはOpenCVを自動的にダウンロードしてセットアップするパッケージマネージャを使用します。 Pythonディレクトリはありません。すべてがEnthoughtを通してです。いくつかの掘削後、私はOpenCVのの.dllのすべてがopencv_ffmpeg249_64.dll含めて、配置されて見つかった場所:

C:\Users\USERNAME\AppData\Local\Enthought\Canopy\edm\pkgs\03\9d58e152b8f411718220c30639b8448585cb7d9a82de662c7e34b35d9ec1f6 

だから私はこれで何をしますか? .dllをどこにコピーしますか? .dllはここでも問題ですか?私は、あらゆる種類の場所にコピーし、.dllの名前を変更するなど、非常に多くのことを試みました。助けて!私はあなたがゼロから再起動し、次の手順を実行することをお勧めしたいあなたの問題を解決するために

答えて

1

: - あなたのマシン

2にのPython 3の新鮮な標準バージョンをインストールし

1 - https://bootstrap.pypa.io/get-pip.py

3からget-pip.pyファイルをダウンロード - あなたはGET-PIPをダウンロードしたフォルダに、端末とCDを開きます。PYファイル

4 - その後ピップ

5をインストールするには、端末上でpython3 get-pip.pyを入力 - そのピップがインストールされたら、ターミナル

pip install cmakeを入力して cmakeのをインストールする準備ができています

6 - 今https://github.com/opencv/opencvに行き、OpenCVの

7のリポジトリ全体をダウンロードします -

mkdir release

cd release

cmake -D CMAKE_BULD_TYPE=RELEASE -D BUILD_PYTHON_SUPPORT=ON USE_V4L=ON WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON USE_GStreamer=ON ..

make

make install

8を入力して、あなたがOpenCVのリポジトリをダウンロードしてcmakeのとそれをコンパイルしたフォルダに使用している端末のCDに - 今すぐcdに電子ディレクトリyourscript.pyが配置されているとpython3 yourscript.py

は、これが問題に

希望が解決するかどうか、私に教えてください、あなたの端末上で問題なくタイピングを使用してスクリプトを実行することができるはずどここの

+0

アドバイスをいただきありがとうございます。私はPython 3をダウンロードしてピップ作業をしましたが、cmakeを正しく動作させることができませんでした。私は、opencvをインストールする別の方法を試しました。これは、opencv用の.whlファイルをpip dowloadすることによって行いました。しかし、今私がプログラムを実行するとき、私はこれを取得します: 'ImportError:DLLロードが失敗しました:%1は有効なwin32アプリケーションです' – Spaceguy44

+0

私はウィンドウ10を使用していることを明確にする必要があります。 – Spaceguy44

+0

opencvを.whlファイルをインストールすると動作しません。あなたはcmakeに遭遇している問題の詳細を教えてください。 – Employee

0

役立ちますそのディレクトリには何もしないでください。それはパッケージマネージャのプライベートキャッシュディレクトリであり、あなたがそれを混乱させると、あなたは何を破壊するのかを知っています。 Canopyのpython環境はCanopy \ edm \ envs \ Userにあります。

あなたのスクリプトがPython 2.7で動作するかどうかはわかりませんが、最初の回答のようにPython 3を試したい場合は、CanopyインストールにPython 3.5環境を簡単にインストールできます。 http://docs.enthought.com/canopy/configure/python-environments.html

+0

私はEnthought CanopyでPython 3.5を試してみましたが、それは私に似たエラーをもたらします。今回Canopyはopencv 3.2.0をインストールしました。 – Spaceguy44

1

問題は(少なくとも私があなたのテストファイルなしで言うことができる限り)testvid.read()の後にretの値をチェックできないということです。この呼び出しがFalseを返すと、表示するフレームがなくなりますので、驚くことではないが、imshow()は失敗します。

+0

@ spaceguy44、これはあなたの質問に答えましたか? –

+0

@ spaceguy44 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

関連する問題