详解OpenCV的窗口创建函数namedWindow()

部署运行你感兴趣的模型镜像

函数namedWindow()用于创建窗口,窗口通常用来显示图像。

我们在使用函数imshow()显示图像时通常并不会使用这个函数,因为函数imshow()在显示窗口时会自动创建图像显示的窗口。
但有时候我们需要事先对显示图像的窗口作一些设置,此时就需要用到函数namedWindow()。

博主注:
博主于2022-10-19重写了这篇博文,
修正了以下叙述中错误、不准确、不确定的部分,
建议大家阅读本篇博文的最新版,
最新版链接 https://www.hhai.cc/thread-87-1-1.html

其C++原型如下:
void cv::namedWindow(const String & winname,int flags = WINDOW_AUTOSIZE )
其Python原型如下:
None = cv.namedWindow(winname[, flags] )

第二个参数flags是可选参数,其可选值及对应的意义如下:
注意:以下参数是针对OpenCV4.x版本的,OpenCV3.x只支持WINDOW_NORMAL、WINDOW_AUTOSIZE和WINDOW_OPENGL三种。
WINDOW_NORMAL
Python: cv.WINDOW_NORMAL

the user can resize the window (no constraint) / also use to switch a fullscreen window to a normal size.
操作窗口的用户可以随意调整窗口大小,并且图像会按窗口大小自动进行缩放从而把窗口填满,当然也可对窗口进行全屏显示。
示例代码如下:

# -*- coding: utf-8 -*-
# 出处:昊虹AI笔记网(hhai.cc)
# 用心记录计算机视觉和AI技术

# 博主微信/QQ 2487872782
# QQ群 271891601
# 欢迎技术交流与咨询

import cv2 as cv

img = cv.imread('./image/food-01.jpg')
cv.namedWindow('window_01', cv.WINDOW_NORMAL)
cv.namedWindow('window_01')
cv.imshow('window_01', img)

cv.waitKey(0)
cv.destroyAllWindows()

WINDOW_AUTOSIZE
Python: cv.WINDOW_AUTOSIZE

the user cannot resize the window, the size is constrainted by the image displayed.
操作窗口的用户不能改变窗口的大小,窗口的大小取决于图像的大小。

WINDOW_OPENGL
Python: cv.WINDOW_OPENG

window with opengl support.
创建的窗口可支持OPENGL。OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。

WINDOW_FULLSCREEN
Python: cv.WINDOW_FULLSCREEN

change the window to fullscreen.
创建的窗口以全屏的形式显示…但实际操作中发现并没有实现全屏显示,截图如下:
在这里插入图片描述
上面的截图显示并没有按全屏显示…我也不知道是怎么回事…有知道的麻烦在下面留言吧!

WINDOW_FREERATIO
Python: cv.WINDOW_FREERATIO

the image expends as much as it can (no ratio constraint).
图像窗口可以以任意宽高比例显示,即不固定宽高比例

WINDOW_KEEPRATIO
Python: cv.WINDOW_KEEPRATIO

the ratio of the image is respected.
图像窗口的宽高比例保持不变。

WINDOW_GUI_EXPANDED
Python: cv.WINDOW_GUI_EXPANDED

status bar and tool bar
图像窗口可以添加状态栏和工具栏。

WINDOW_GUI_NORMAL
Python: cv.WINDOW_GUI_NORMAL

old fashious way
老式窗口,即没有状态栏和工具栏的图像窗口

第二个参数Flag的默认值是:
WINDOW_AUTOSIZE | WINDOW_KEEPRATIO | WINDOW_GUI_EXPANDED

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昊虹AI笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值