cvResizeWindow()闪烁反应

时间:2013-09-01 21:17:02

标签: opencv

我有一个OpenCV窗口,我想调整大小以填充我的屏幕,但是当我使用调整大小功能时,窗口会闪烁。输出是我的网络摄像头,我想闪烁是因为我的相机没有那些尺寸。有没有其他方法可以使相机的输出更大?

cvNamedWindow("video", CV_WINDOW_AUTOSIZE);

IplImage *frame=0;
frame=cvQueryFrame(capture);

cvShowImage("video", frame);

cvResizeWindow("video", 1920,1080);

2 个答案:

答案 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);
    ...
}

我不确定闪烁的原因,因为我无法在我的系统上复制该问题。 因此,我不能保证闪烁会消失(但至少视频应该是正确的大小)。