首页 > 编程笔记 > C++笔记 阅读:1

OpenCV resizeWindow()调整窗口大小(附带实例)

窗口大小可以通过手动拖拉窗口边框来调整,也可以通过函数方式来调整。OpenCV 中,调整窗口大小的函数是 resizeWindow(),其声明如下:
void resizeWindow(const String& winname, int width, int height);
其中参数 winname 是要调整尺寸的窗口的名称,width 是调整后的窗口宽度,height 是调整后的窗口高度。

需要注意的是,新建窗口函数 namedWindow() 的第二个参数必须为 WINDOW_NORMAL,才可以手动拉动窗口边框来调整大小,并且让图片随着窗口大小而改变。

【实例】调整窗口大小
1) 打开 Qt Creator,新建一个控制台工程,工程名是 test:

2) 在 IDE 中打开 main.cpp,输入如下代码:
#include <opencv2/opencv.hpp>
using namespace cv;
#include<iostream>
using namespace std;

int main() {
    vector<Mat>srcImage(1);
    char szName[50] = "";
    int width = 240, height = 120;

    sprintf_s(szName, "%d.jpg", 1);
    srcImage[0] = imread(szName);
    if (srcImage[0].empty()) { // 判断当前 vector 读入的正确性
        cout << "read " << szName << " error" << endl;
        return -1;
    }
    namedWindow(szName, WINDOW_NORMAL); // 新建窗口
    imshow(szName, srcImage[0]); // 在窗口显示图片
    resizeWindow(szName, width, height); // 调整窗口大小
    waitKey(0);
    system("pause");
    return 0;
}
在上述代码中,首先读入一幅图片,然后新建一个窗口显示该图片,接着调用函数 resizeWindow() 调整窗口大小。由于 namedWindow() 的第二个参数是 WINDOW_NORMAL,因此图片大小会随着窗口大小的变化而变化。

3) 保存工程并运行,结果如下图所示:

相关文章