我编写了一个使用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
行,以检查框架是否获得任何值。因此,矩阵中有许多值,但视频窗口没有出现。
答案 0 :(得分:2)
您必须使用imshow
在waitKey
之后添加一个非常小的延迟。
imshow("display",frame);
waitKey(10); //Wait 10 milliseconds before showing next frame.