在opencv中播放视频:没有错误没有输出

时间:2014-01-09 07:14:51

标签: c++ opencv

我编写了一个使用opencv显示存储视频文件的程序。我附上了以下代码。构建它时我没有收到任何错误,但没有显示输出。

int main(int argc, char *argv[])
    {
              if (argc <= 1)
              {
                      printf("Usage: %s video\n", argv[0]);
                      return -1;
              }


              VideoCapture capture(argv[1]);
              namedWindow("display",cv::WINDOW_AUTOSIZE);

              capture.set(cv::CAP_PROP_FRAME_WIDTH, 640);
              capture.set(cv::CAP_PROP_FRAME_HEIGHT, 480); 


              if(!capture.isOpened())
              {

                              printf("Failed to open the video\n");
                              return -1;
               }

               int i;

               for(i=0;i<390;i++)
               {
                          Mat frame;


                          capture >> frame; // get a new frame from camera

                          cout << "frame =" << endl << " " <<  frame << endl << endl; 
                          imshow("display",frame);
                }

                }

我在末尾添加了cout行,以检查框架是否获得任何值。因此,矩阵中有许多值,但视频窗口没有出现。

1 个答案:

答案 0 :(得分:2)

您必须使用imshowwaitKey之后添加一个非常小的延迟。

imshow("display",frame);
waitKey(10); //Wait 10 milliseconds before showing next frame.