OpenCV文档阅读笔记-brief Creates a window官方解析及实例

目录

官方解析

博主例子


官方解析

brief Creates a window

简单创建一个窗口

这个函数可以创建一个窗口用来放图片,更具图片名来创建的窗口。
如果这个窗口的名字已经被创建,那么这个函数将什么也不会做。
可以通过调用cv::destroyWindow或cv::destroyAllWindows去关闭Windows上的窗口和释放掉为窗口分配的内存。举一个简单的栗子,如果你创建了窗口,没有调用这个函数,那么这个窗口及其内部的资源都将会在关闭的时候被操作系统自动的释放。

注意到!
他的第二个参数flages可以调用Qt的界面框架
-WINDOW_NORMAL与WINDOW_AUTOSIZE:WINDOW_NORAL能够人用户重新设置窗口的大小,反之WINDOW_AUTOSIZE是自动适应图片大小从而调整窗口大学,也不能改变窗口的大小。
-WINDOW_FREERATIO与WINDOW_KEEPEATIO:WINDOW_FREERATIO不会按照比例去适应图片大小,而WINDOW_KEEPRATIO可以保存图片的比例。
-WINDOW_GUI_NORMAL与WINDOW_GUI_EXPANDED:WINDOW_GUI_NORAL是老版本的创建界面的方式,这个方式没有工具栏,状态栏,而WINDOW_GUI_EXPANDED是新的方式,当然他有工具栏和状态栏目

一般对这个参数进行这样的骚操作:WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED

winname作为窗口的唯一标识,如果有重复,那么当前的那个就会创建失败!
flags参数如下:

enum WindowFlags{
       WINDOW_NORMAL=0x00000000, //可以改变窗口的大小,但不能改变窗口里面的内容,也可以把全屏的窗口切换为正常的大小;
       WINDOW_AUTOSIZE=0x00000001,//用户不能改变窗口的大小,窗口的大小受图片大小的影响;
       WINDOW_OPENGL=0x00001000,//后端调用opengl生成的界面
       WINDOW_FULLSCREEN=1,//把窗口转化为全屏
       WINDOW_FREERATIO=0x00000100,//图像尽可能的填充窗口(不会按照比例)
       WINDOW_KEEPRATIO=0x00000000,//按照图像的比例进行展示
       WINDOW_GUI_EXPANDED=0x00000000,//状态栏和工具栏
       WINDOW_GUI_NORMAL=0x00000010,//老旧风格的窗口
};

博主例子

运行截图如下:

OpenCV文档阅读笔记-brief Creates a window官方解析及实例

源码如下:

#include <iostream>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/photo.hpp>

using namespace std;
using namespace cv;

int main(){

	//Similar to OpenCV2
	Mat image=imread("src1.jpg");

	namedWindow("image",WINDOW_GUI_EXPANDED);
	imshow("image",image);
	
	bool isExit=false;
	while(!isExit){
		char c=waitKey(0);
		switch(c){
		case '\x1b':
			cout<<"exit......"<<endl;
			isExit=true;
		}
	}
	destroyWindow("iamge");	//if you can do not call this function, it will be released automatically!
	return 0;
}