视频不流畅OpenCV 2.4和Qt 5.7

时间:2016-12-07 13:51:41

标签: c++ qt opencv video qt5.7

我正在努力编写一个视频播放器,它使用OpenCV从视频中读取一个帧并将其显示在QWidget中。

这是我的代码:

// video caputre is opened here
...

void VideoPlayer::run()
{
    int sleep = 1000 / static_cast<unsigned long>(video_capture_.get(CV_CAP_PROP_FPS));
    forever
    {
            QScopedPointer<cv::Mat> frame(new cv::Mat);
            if(!video_capture_.read(*frame))
                break;

            cv::resize(*frame, *frame, cv::Size(640, 360), 0, 0, cv::INTER_CUBIC);
            cv::cvtColor(*frame, *frame, CV_BGR2RGB);

            QImage image(frame->data, frame->cols, frame->rows, QImage::Format_RGB888);

            emit signalFrame(image); // notifying QWidget to draw an image

            msleep(sleep); // wait before we read another frame
    }
}

在QWidget方面,我只是使用此图片并在paintEvent中绘制。

我只是看到参数sleep在这里不起重要作用。尽管我减少了它(为了获得更多的FPS),但视频并不顺畅。

这里唯一留给我的是我放弃了这种方法,因为它不起作用,但我想在这里再问一次,只是为了确定 - 我在这里做错了吗?

0 个答案:

没有答案