c++ - 尝试播放 OpenCv 框架时挂起

标签 c++ opencv

我正在尝试编写一个传输视频然后播放的应用程序。但一开始我只是想打开视频并播放它,但我遇到了麻烦。 这是我的代码:

VideoPlayer::Play()
{
CvCapture *capture = cvCreateFileCapture(m_FileName.c_str());
    IplImage* frame = cvQueryFrame(capture);

    int frame_number = 0;

     cvNamedWindow("stream_server", CV_WINDOW_AUTOSIZE);


    while (true)
    {
        if (!frame)
        {
            std::cout << "Failed\n";
            break;
        }

        cvShowImage("stream_server", frame);


        ++frame_number;
        frame = cvQueryFrame(capture);

    }

    cvReleaseCapture(&capture);
}

问题是 - 当我运行这个程序时,我看到出现了 videoWindows,但它显示灰色屏幕并挂起沙钟。

你能帮我吗?

最佳答案

您需要调用waitKey 以便更新窗口。如果用户按下字母“c”,这将停止:

int c = waitKey(10);
if( (char)c == 'c' ) { break; }

关于c++ - 尝试播放 OpenCv 框架时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732579/

相关文章:

Python ctypes,将 c_void_p 作为输出参数传递给 c 函数

c++ - 如何在成功或失败的情况下返回 std::copy 的值?

c++ - ISO C++ 禁止比较指针和整数

c++ - 拆分字符串并插入 vector 的最简单方法?

python - 使用 rtsp 流时 Tensorflow 对象检测速度慢

c++ - 条件变量和共享互斥量

c++ - 什么是使用 opencv::Mat 优化 c++ 矩阵计算

linux - Gall 和 Lempitsky 如何编译 opencv 霍夫森林实现

python - 使用 imagekit 和 opencv 创建视频缩略图

c++ - Opencv 相机校准生成非常扭曲的图像