当前位置: 首页 > news >正文

OpenCV(一):创建显示窗口

核心函数

1. cv2.namedWindow(windowName, flags)

功能:创建一个窗口,可指定窗口属性(是否可调整大小、是否为全屏等)。
语法:

cv2.namedWindow(winname, flags)

参数说明:

参数类型说明
winnamestr窗口的名称(字符串),用于唯一标识该窗口
flagsint窗口标志,用于控制窗口属性(见下表)

flags 可选值:

标志含义
cv2.WINDOW_NORMAL创建一个可调整大小的窗口
cv2.WINDOW_AUTOSIZE(默认)窗口大小自动适应图像,不能改变
cv2.WINDOW_FULLSCREEN全屏显示窗口
cv2.WINDOW_FREERATIO允许自由缩放图像显示比例
cv2.WINDOW_KEEPRATIO保持图像宽高比缩放(默认)
cv2.WINDOW_GUI_EXPANDED启用带状态栏的 GUI
cv2.WINDOW_GUI_NORMAL经典窗口(无状态栏)

2. cv2.imshow(windowName, image)

功能:在指定的窗口中显示图像。
语法:

cv2.imshow(winname, mat)

参数说明:

参数类型说明
winnamestr已创建的窗口名称
matndarray图像矩阵(例如通过 cv2.imread() 读取)

注意:

  • 图像必须是 numpy.ndarray 类型。
  • imshow 只是将图像传递给窗口缓冲区,不会立即显示,需要调用 cv2.waitKey() 来刷新。

3. cv2.waitKey(delay=0)

功能:等待键盘事件;窗口刷新依赖于该函数。
语法:

key = cv2.waitKey(delay)

参数说明:

参数类型说明
delayint等待时间(毫秒)。0 表示无限等待直到按键。

返回值:

  • 返回按键的 ASCII 值,可用于判断退出条件。
    例如:
if cv2.waitKey(0) & 0xFF == ord('q'):break

4. cv2.destroyWindow(windowName)

功能:销毁指定窗口。

cv2.destroyWindow(winname)

5. cv2.destroyAllWindows()

功能:销毁所有由 OpenCV 创建的窗口。

cv2.destroyAllWindows()

6. cv2.resizeWindow(windowName, width, height)

功能:修改已创建窗口的大小(仅 WINDOW_NORMAL 类型窗口可调整)。

cv2.resizeWindow(winname, width, height)

7. cv2.moveWindow(windowName, x, y)

功能:移动窗口位置到指定屏幕坐标。

cv2.moveWindow(winname, x, y)

8. cv2.setWindowProperty(windowName, prop_id, prop_value)

功能:设置窗口的特性,如是否全屏显示。

cv2.setWindowProperty(winname, prop_id, prop_value)

常用属性:

属性ID说明可选值
cv2.WND_PROP_FULLSCREEN全屏显示属性cv2.WINDOW_FULLSCREEN / cv2.WINDOW_NORMAL
cv2.WND_PROP_AUTOSIZE自动调整大小0(禁用)/1(启用)
cv2.WND_PROP_ASPECT_RATIO是否保持宽高比0/1

示例

示例 1:最简单的图像显示

import cv2# 读取图像
img = cv2.imread("test.jpg")# 显示图像(自动创建窗口)
cv2.imshow("Simple Display", img)# 等待按键并关闭
cv2.waitKey(0)
cv2.destroyAllWindows()

示例 2:创建可调整大小的窗口

import cv2img = cv2.imread("test.jpg")# 创建可调整窗口
cv2.namedWindow("Adjustable Window", cv2.WINDOW_NORMAL)
cv2.imshow("Adjustable Window", img)# 改变窗口大小
cv2.resizeWindow("Adjustable Window", 800, 600)
cv2.waitKey(0)
cv2.destroyAllWindows()

示例 3:全屏显示图像

import cv2img = cv2.imread("test.jpg")cv2.namedWindow("FullScreen", cv2.WINDOW_NORMAL)
cv2.setWindowProperty("FullScreen", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
cv2.imshow("FullScreen", img)cv2.waitKey(0)
cv2.destroyAllWindows()

示例 4:循环显示与退出条件

import cv2img = cv2.imread("test.jpg")
cv2.namedWindow("Loop Display", cv2.WINDOW_AUTOSIZE)while True:cv2.imshow("Loop Display", img)key = cv2.waitKey(10) & 0xFFif key == ord('q'):  # 按下 q 键退出breakcv2.destroyAllWindows()

示例 5:多个窗口显示

import cv2img = cv2.imread("test.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.imshow("Original", img)
cv2.imshow("Gray", gray)cv2.moveWindow("Original", 100, 100)
cv2.moveWindow("Gray", 600, 100)cv2.waitKey(0)
cv2.destroyAllWindows()

总结

功能函数注意事项
创建窗口cv2.namedWindow()imshow() 前创建才能设置类型
调整大小cv2.resizeWindow()仅对 WINDOW_NORMAL 有效
移动窗口cv2.moveWindow()可用于多窗口排版
设置全屏cv2.setWindowProperty()可切换全屏与普通模式
键盘交互cv2.waitKey()必须调用才能刷新界面
关闭窗口cv2.destroyWindow() / destroyAllWindows()释放资源
http://www.dtcms.com/a/453796.html

相关文章:

  • 国际设计网站有哪些吉林省吉林市天气预报
  • 全响应网站制作北京中燕建设公司网站
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 张量(Tensor)的定义与操作
  • 网站授权合同网站服务器查询
  • 网站建设性能分析淘宝网站店铺请人做
  • 泰州网站专业制作如何免费申请域名和网址
  • C61-结构体数组
  • XPath 节点
  • 乐清公司做网站服务外包公司是干什么的
  • MySQL————数据库基础
  • 个人账号密码网站建设怎么制作网站视频
  • 【全志V821_FoxPi】6-2 IMX219 MIPI摄像头适配
  • Python Keras深度学习
  • dede门户网站模版平台推广活动策划方案
  • 什么是文件上传漏洞? 产生该漏洞的原因是什么 ? 它的危害有哪些?
  • 成都旅行社网站建设设计师网址大全
  • 两种方法解决「将数组和减半的最少操作次数」
  • AI 与 Agent 技术体系知识图谱
  • 线性表的顺序和链式存储
  • 活动策划网站源码广西住房城乡建设领域
  • 做彩票网站犯法吗wordpress 标题颜色
  • 怎么科研绘图?怎么批量搜索高质量文献?Nature, Science, Cell
  • [hpatch]差分算法学习笔记 -- patch解压补丁
  • STM32G474 STM32CubeMX SPL06-001驱动程序
  • 域名注册好怎么建设网站工作态度和责任心感悟
  • 网站充值链接怎么做php网站空间支持
  • 做网站商城如何优化3 阐述网站建设的步骤过程 9分
  • 沈阳建网站公司wordpress posts page
  • [论文阅读] 软件工程 | 量子计算即服务(QCaaS)落地难?软件工程视角的解决方案来了
  • 上海网站建设的企哪些网站可以直接做英文字谜