1

OpenCV 2.4.3最近、からに移行しましたOpenCV 2.4.1

バージョンでうまく機能した私のプログラムは、で2.4.1問題が発生し2.4.3ます。

問題はVideoCapture、ビデオファイルを開くことができないことに関連しています。

インターネットを検索しているときに同様の問題が発生しましたが、これに対する適切な解決策を見つけることができませんでした。これが私のサンプルコードです:

VideoCapture video(argv[1]);
while(video.grab())
{
    video.retrieve(imgFrame);
    imshow("Video",ImgFrame);
    waitKey(1);
}

ウェブカメラデバイスからのビデオのキャプチャはうまく機能することは言及する価値がありますが、ファイルからストリームを取得したいと思います。

私は使用していてQT Creator 5、でコンパイルOpenCVしましMinGWた。私はWindowsを使用しています。

いくつかの異なるビデオ形式を試し、をOpenCV使用して、または使用せずに再構築しましffmpegたが、問題は解決しません。

問題を解決する方法はありますか?

4

2 に答える 2

1

これを試して:

VideoCapture video(argv[1]);
int delay = 1000.0/video.get(CV_CAP_PROP_FPS);
while(1)
{
    if ( !video.read(ImgFrame)) break;
    imshow("Video",ImgFrame);
    waitKey(delay);
}
于 2013-03-18T10:54:24.370 に答える
0

私の OpenCV での経験では、メンターがそれらを機能させる方法を発見するまで、IP カメラの使用に苦労しました。IP アドレスを接続することを忘れないでください。そうしないと機能しません!

import cv2
import numpy as np
import urllib.request

# Sets up the webcam and connects to it and initalizes a variable we use for it
stream=urllib.request.urlopen('http://xx.x.x.xx/mjpg/video.mjpg')
bytes=b''

while True:
    # Takes frames from the camera that we can use
    bytes+=stream.read(16384)
    a = bytes.find(b'\xff\xd8')
    b = bytes.find(b'\xff\xd9')
    if a!=-1 and b!=-1:
        jpg = bytes[a:b+2]
        bytes= bytes[b+2:]
        frame = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),cv2.IMREAD_COLOR)
        img = frame[0:400, 0:640] # Camera dimensions [0:WIDTH, 0:HEIGHT]

       # Displays the final product
        cv2.imshow('frame',frame)
        cv2.imshow('img',img)

     # Hit esc to kill
        if cv2.waitKey(1) ==27:
            exit(0)
于 2016-07-15T16:34:22.980 に答える