无法在OpenCV中读取视频

Unable to read video in opencv

本文关键字:读取 视频 OpenCV      更新时间:2023-10-16

我正在尝试读取视频文件,但是它的投掷错误。代码是:

#include <iostream>
#include <opencv/highgui.h>
#include <opencv/cv.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char* argv[])
{
    Mat inputVideo;
    Mat frame;
    Mat HSV;
    Mat tracking;
    char checkKey;
    VideoCapture capture;
    capture.open("video/input.mp4");
    capture.set(CV_CAP_PROP_FRAME_WIDTH, 640);
    capture.set(CV_CAP_PROP_FRAME_HEIGHT,480);      
    namedWindow("Original Video", WINDOW_AUTOSIZE );
    while(1){
        capture.read(inputVideo);
        if (!inputVideo.empty())
        {
            imshow("Original Video",inputVideo);
        }
        waitKey(20);
    }
    return 0;
 }

在运行此代码时,我遇到的错误是:

无法停止流:设备不适当的IOCTL

(video_reading:3459):glib-gobject-Critical **:g_object_set: 断言'g_is_object(object)'失败

我尝试寻找解决方案,但我没有得到解决方案。有人可以帮助我解决此错误。

我对您的代码几乎没有更改。尝试以下操作:

#include <iostream>
#include <opencv/highgui.h>
#include <opencv/cv.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char* argv[])
{
    Mat inputVideo;
    Mat frame;
    Mat HSV;
    Mat tracking;
    char checkKey;
    VideoCapture capture;
    capture.open("video/input.mp4");
    capture.set(CV_CAP_PROP_FRAME_WIDTH, 640);
    capture.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
    namedWindow("Original Video", WINDOW_AUTOSIZE);
    while (1) {
        capture >> inputVideo;
        if (inputVideo.empty())
            break;
        imshow("Original Video", inputVideo);
        waitKey(1);
    }
    capture.release();
    return 0;
}