2

私はpython 2.7とopenCV 2.3.1(win 7)を使用しています。ビデオファイルを開こうとしています:

stream = cv.VideoCapture("test1.avi")
if stream.isOpened() == False:
print "Cannot open input video!"
exit()

しかし、私は警告があります:

warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl_v2.hpp:394)

ビデオ カメラ ( stream = cv.VideoCapture(0)) を使用する場合、このコードは機能します。私が間違っていることについてのアイデアはありますか?本当にありがとうございました!

4

3 に答える 3

3

cv.CaptureFromFile()代わりに使用してみてください。

必要な場合は、このコードをコピーしてください: Watch Video in Python with OpenCV .

于 2012-04-27T16:11:20.210 に答える
1

c++ からバインドされたオブジェクト指向の OpenCV (cv2) の新しいインターフェイスを使用できます。私はそれがより簡単で読みやすいと思います。

注:これで写真を開いた場合、fpsは何の意味もないため、写真は静止したままです。

import cv2
import sys

try:
    vidFile = cv2.VideoCapture(sys.argv[1])
except:
    print "problem opening input stream"
    sys.exit(1)
if not vidFile.isOpened():
    print "capture stream not open"
    sys.exit(1)

nFrames = int(vidFile.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT)) # one good way of namespacing legacy openCV: cv2.cv.*
print "frame number: %s" %nFrames
fps = vidFile.get(cv2.cv.CV_CAP_PROP_FPS)
print "FPS value: %s" %fps

ret, frame = vidFile.read() # read first frame, and the return code of the function.
while ret:  # note that we don't have to use frame number here, we could read from a live written file.
    print "yes"
    cv2.imshow("frameWindow", frame)
    cv2.waitKey(int(1/fps*1000)) # time to wait between frames, in mSec
    ret, frame = vidFile.read() # read next frame, get next return code
于 2014-01-16T14:17:46.527 に答える