0

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

cvNamedWindow("video", CV_WINDOW_AUTOSIZE);

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

cvShowImage("video", frame);

cvResizeWindow("video", 1920,1080);
4

2 回答 2

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);  
}
于 2013-09-02T10:53:00.980 回答
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);
    ...
}

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

于 2013-09-01T23:50:04.257 回答