1

最近我OpenCV 2.4.3OpenCV 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 5OpenCV使用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 回答