2017-06-24 21 views
-2

OpenCVを使ってPythonで書かれたプログラムに問題があります。 私はXubuntu(16.04)、Python 3.6を使用しています。Python OpenCV:アサーションが失敗しました

これは私のコードです:

import cv2 
import numpy as np 

if __name__ == "__main__": 
    cap = cv2.VideoCapture('movie.mp4') 

    key = ord('a') 

    while key != ord('q'): 
     # Capture frame by frame 
     ret, frame = cap.read() 
     # Display the result of our processing 
     cv2.imshow('result', frame) 
     # Wait a little (30 ms) for a key press - this is required 
     # to refresh the image in our window 
     key = cv2.waitKey(30) 


    # When everytihnd done, releas the captyur and destroy created windows 
    cap.release() 
    cv2.destroyAllWindows 

、これは私が受信したエラーです:

/home/xubuntu/anaconda3/bin/python "/home/xubuntu/PycharmProjects/untitled/lab1/zad7 wideo v2.py" 
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow, file /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/highgui/src/window.cpp, line 281 
Traceback (most recent call last): 
    File "/home/xubuntu/PycharmProjects/untitled/lab1/zad7 wideo v2.py", line 13, in <module> 
    cv2.imshow('result', frame) 
cv2.error: /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/highgui/src/window.cpp:281: error: (-215) size.width>0 && size.height>0 in function imshow 


Process finished with exit code 1 

を、私は同じコードは、Windows上で動作することを、追加したいと仮定します。 私を助けてもらえますか?

+0

フレームはここでは空です。 'cv2.imshow( 'result'、frame)' – ZdaR

+0

フレームは0x0フレーム(コンテンツはありません)のようです。 –

+0

それは私が実際に今のものです。 Linuxでは動作しませんが、Windowsでは動作します。このファイルのアクセス許可を変更しようとしましたが、どちらもうまくいきませんでした。 – fafal

答えて

0

cap.read()は2つの値を返します。2番目の値は、画像がnumpyの配列であることがわかります。最初はboolの値で、ビデオの末尾に達したかどうかを示します

あなたは次の反復に入る前に、このように、戻り値をテストする必要があります。

while key != ord('q'): 
    ret, frame = cap.read() 
    if not ret: 
     break 

    cv2.imshow('result', frame) 
    key = cv2.waitKey(30) 

するとビデオのcap.read()戻り(False, <empty array>)、オーバー。だから最初にその戻り値をテストすることを確認してください。

+0

いいえ、アプリはビデオを読み込まないのはなぜですか?私は許可を変更しようとした、働いていない。 – fafal

+0

@fafalどういう意味ですか?それでもエラーはスローされますか?次に、pyスクリプトをchmod +777できるかどうかを確認します。 –

関連する問題