У меня очень простая программа на OpenCV:
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace std;
void showVideo(CvCapture *video)
{
int width = (int) cvGetCaptureProperty(video, CV_CAP_PROP_FRAME_WIDTH);
int height = (int) cvGetCaptureProperty(video, CV_CAP_PROP_FRAME_HEIGHT);
//int fps = (int) cvGetCaptureProperty(video, CV_CAP_PROP_FPS);
IplImage* frame = cvCreateImage(cvSize(width, height), 8, 1);
cvNamedWindow("Showing Video:", 0);
while (true)
{
frame = cvQueryFrame(video);
cvShowImage("Showing Video:", frame);
cvWaitKey(10);
}
//cvDestroyWindow("Showing Video:");
//cvReleaseImage(&frame);
}
int main()
{
CvCapture *video = cvCaptureFromCAM(CV_CAP_ANY);
showVideo(video);
return 0;
}
Я хочу иметь char ch;
и что-то вроде этого while(ch != 'q')
, тогда оно все еще воспроизводит видео.Есть некоторые способы, такие как kbhit()
или getch()
, но они не являются стандартными, и я хочу что-то, чтобы при каждом нажатии клавиши 'q' показ видео завершался, в противном случае показ видео продолжится.
Как я могу сделать эту работу?