在尝试播放OpenCv帧时挂起

时间:2012-12-05 21:15:29

标签: 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出现,但它显示灰色屏幕并挂着沙子时钟。

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

您需要调用waitKey才能更新窗口。如果用户按下字母'c',这将停止:

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