2

ビデオファイルを読み取るためにopencv pythonラッパーを使用しようとしていますが、コードは正常に動作しますが、数分後にcapture.read()が空の画像を返し始めます。いくつかの異なるビデオ ファイルを試し、公式ドキュメントで指定されているすべてのエンコーディング ビデオ形式を使用してみまし: virtualdub と mencoder を使用してみました。Python 2.7、opencv 2.4.4、および win7 を使用しています。これは私が使用するコードです:

import cv2
c = cv2.VideoCapture("work.avi")
cv2.namedWindow("input")
f = True
while(f):
    f,img = c.read() # After some minutes all frames returnes are empty and f is false
                     # This doesn't throws any exception
    try:
        cv2.imshow("input",img)
    except cv2.error as e:
        print e # print error: (-206) Unrecognized or unsupported array type
    cv2.waitKey(1)
4

1 に答える 1

1

ビデオファイルは単に終わりに達しましたか?

http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.htmlcv2.VideoCapture.readのドキュメントから:メソッドは false を返し、関数は NULL ポインターを返します。」

上記のコードは、ファイルが最後に達したかどうかを確認していないため、永久に実行され続け、空白の画像を表示します。

ラインの後

f,img = c.read()

これを追加:

if not f:
    break
于 2013-04-07T05:26:46.507 に答える