我有一个OpenCV窗口,我想调整大小以填充我的屏幕,但是当我使用调整大小功能时,窗口会闪烁。输出是我的网络摄像头,我想闪烁是因为我的相机没有那些尺寸。有没有其他方法可以使相机的输出更大?
cvNamedWindow("video", CV_WINDOW_AUTOSIZE);
IplImage *frame=0;
frame=cvQueryFrame(capture);
cvShowImage("video", frame);
cvResizeWindow("video", 1920,1080);
答案 0 :(得分:1)
举例说明如何使用cvResize()来调整图像或框架的大小。
IplImage *frame;
CvCapture *capture = cvCaptureFromCAM(0);
cvNamedWindow("capture", CV_WINDOW_AUTOSIZE);
while(1) {
frame = cvQueryFrame(capture);
IplImage *frame_resize = cvCreateImage(cvSize(1366, 768), frame -> depth, frame -> nChannels);
cvResize(frame, frame_resize, CV_INTER_LINEAR);
cvShowImage("capture", frame);
cvWaitKey(25);
}
答案 1 :(得分:0)
一种可能性是使用cvResize()函数来更改框架的大小。
但是,更简单的方法是摆脱CV_WINDOW_AUTOSIZE
标志 - 如果没有,视频将以窗口大小显示。
这样的事情:
cvNamedWindow("video", 0);
cvResizeWindow("video", 1920,1080);
IplImage *frame=0;
while(true)
{
frame=cvQueryFrame(capture);
cvShowImage("video", frame);
int c = waitKey(10);
...
}
我不确定闪烁的原因,因为我无法在我的系统上复制该问题。 因此,我不能保证闪烁会消失(但至少视频应该是正确的大小)。