函数namedWindow()用于创建显示图像的窗口。 我们在用窗口显示图像时并不一定要调用这个函数,比如图像显示函数imshow会自动创建图像显示窗口。 但有时候我们需要事先对显示图像的窗口对一些设置,就需要用到函数namedWindow()。 其C++原型如下: void cv::namedWindow(const String & winname,int flags = WINDOW_AUTOSIZE ) 其Python原型如下: None = cv.namedWindow(winname[, flags] )
第二个参数flags是可选参数,其可选值及对应的意义如下: 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. 操作窗口的用户可以随意调整窗口大小,并且图像会按窗口大小自动进行缩放从而把窗口填满,当然也可对窗口进行全屏显示。 示例代码如下:
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
|