在 openCV 中手动停止视频

manually stop a video in openCV

本文关键字:视频 openCV      更新时间:2023-10-16

我有一个给我的OpenCV代码,它使用图片链表显示视频。 我想在其中添加在循环时使用键盘键停止视频的选项。 我做了一些搜索并获得了"WaitKey"功能,但我不确定我应该在我的代码中在哪里以及如何使用它。

cvNamedWindow("Display window", CV_WINDOW_AUTOSIZE); //create a window
FrameNode* head = list;
int imgNum = 1, playCount = 0;
IplImage* image;
while (playCount < GIF_REPEAT)
{
while (list != 0)
{
image = cvLoadImage(list->frame->path, 1);
IplImage* pGrayImg = 0;
pGrayImg = cvCreateImage(cvSize(image->width, image->height), image->depth, 1);
if (!image) //The image is empty - shouldn't happen since we checked already.
{
printf("Could not open or find image number %d", imgNum);
}
else
{
cvShowImage("Display window", image); //display the image
cvWaitKey(list->frame->duration); //wait
list = list->next;
cvReleaseImage(&image);
}
imgNum++;
}
list = head; // rewind
playCount++;
}
cvDestroyWindow("Display window");
return;
cv::imshow("display", image);
char ch = cv::waitKey(duration);
if (ch == ' ')
ch = cv::waitKey(0);  // waits until user presses a key
if cv2.waitKey(1) & 0xFF == ord("q"):
break
  • 把它放在第一个 while 循环中
  • 这将帮助您在按"q"后程序停止执行

waitKey(0将无限显示窗口,直到任何按键(它适用于图像显示(。

waitKey(25)将显示一个25 ms帧,之后显示将自动关闭。(如果将其循环阅读视频,它将逐帧显示视频(

请参阅 https://docs.opencv.org/2.4/modules/highgui/doc/user_interface.html?highlight=waitkey