2017-06-26 19 views
0

私はPythonでしばらくの間OpenCV2を使用していますが、ビデオキャプチャではうまくいかない理由はありません。VideoCaptureのOpenCVセグメンテーションフォールト

>>> import cv2 
>>> a = cv2.imread('./pic_video0_145.jpg') 
>>> a.shape 
(416, 576, 3) 

をしかし、それは(Jupyterノートブックまたは死んカーネル)ビデオと終了のPythonからキャプチャしていません:たとえば
は、このコードは動作します

>>> import cv2 
>>> cap = cv2.VideoCapture('./video6.avi') 
Segmentation fault: 11 

それが動作するために使用すると、I OpenCV(おそらくMacPortsのアップデート)に関する何かを変更したことを忘れないでください。

詳細情報:
は、私は、Mac OS Xに取り組んでいます10.12
バージョン:MacPortsをインストールして3.2.0
:任意の助けopencv @3.2.0_1+contrib+debug+python35+qt4+tbb (active)

どうもありがとうございました。

+0

他のビデオで試してみましたか?またはウェブカメラで?多分opencvを再インストールしますか? – api55

+0

はい、スクリプトとiPythonから起動したJupyterノートブックから複数の動画を試しました。いいえ、私はウェブカメラを使ってみませんでした。なぜなら、私はそれをまったく使用しないからです。 OpenCVを唯一のソリューションとしている場合を除いて、私はむしろopenCVを再インストールしません。 –

+0

他のビデオと一緒に動作するか失敗しましたか?通常そのセグメンテーションフォールトは限界を超えているメモリアクセス....ですので、バグやコーデックの問題の可能性がありますか? – api55

答えて

1

最後に、MacPortsでOpenCV2をアンインストールして再インストールしました(適切なインストール)。

sudo uninstall opencv 
sudo port install opencv +debug +python35 +qt4 +tbb +contrib 

# To use openCV in a virtual env 
cp /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cv2.cpython-35m-darwin.so VIRTUALENV_PATH/lib/python3.5/site-packages/ 

私も(pip install numpy -U)をnumpyのを更新するために必要な、それが働きました。

関連する問題