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

OpenCV销毁窗口

《OpenCV计算机视觉开发实践:基于Python(人工智能技术丛书)》(朱文伟,李建英)【摘要 书评 试读】- 京东图书

既然有新建窗口,就会有销毁窗口。在OpenCV中,销毁窗口时窗口会自动关闭,可以通过函数destroyWindow和destroyAllWindows来实现,前者是销毁某一个指定名称的窗口,后者是销毁所有新建的窗口。函数destroyWindow声明如下:

destroyWindow(winname) -> None

参数winname是要销毁窗口的名称。

destroyAllWindow函数更加简单,声明如下:

destroyAllWindows() -> None

下面我们来新建3个窗口,每个窗口显示5秒,再分别销毁。

【例3.7】  销毁3个窗口

import cv2 as cv 
import numpy as np #导入numpy模块 

szName = ["", "", ""]
srcImage=[1,3]
for i in range(0,2):
	szName[i] = ( "%d.jpg") % (i+1)
	srcImage[i] = cv.imread(szName[i]); #读取图片文件
	cv.imshow(szName[i], srcImage[i]);#在“窗口1”中输出图片
	cv.waitKey(5000);#等待5秒,程序自动退出;改为0,不自动退出
	cv.destroyWindow(szName[i]);
print("所有的窗口已经销毁了")
cv.waitKey(0);

在上述代码中,我们在for循环中读取图片文件,然后新建窗口,并在窗口中显示图片5秒钟后销毁窗口。如果不想在for里面调用destroyWindow函数,也可以在for循环外面调用destroyAllWindows函数,这样3个窗口都显示后再一起销毁。

运行工程,结果如图3-8所示。

图3‑8

窗口大小可以通过手动拖拉窗口边框来调整,也可以通过函数方式来调整窗口大小。调整窗口大小的函数是resizeWindow,声明如下:

resizeWindow(winname, width, height) -> None

其中,参数winname是要调整尺寸的窗口的标题;width是调整后的窗口宽度;height是调整后的窗口高度。

需要注意的是,新建窗口函数namedWindow的第二个参数必须为WINDOW_NORMAL,才可以手动拉动窗口边框来调整大小,虽然此时resizeWindow依旧可以调整窗口,但是图片不会随着窗口大小而改变。

【例3.8】 调整窗口大小

import cv2 as cv 
srcImage=[1]
width = 240
height = 120
szName = ( "%d.jpg") % 1
srcImage[0] = cv.imread(szName);
cv.namedWindow(szName, cv.WINDOW_NORMAL); #新建窗口
cv.imshow(szName, srcImage[0]);#在窗口中显示图片
cv.resizeWindow(szName, width, height); #调整窗口大小
cv.waitKey(0); 

在上述代码中,首先读入一幅图片,然后新建一个窗口显示图片,接着调用函数resizeWindow调整窗口大小,由于namedWindow的第二个参数是WINDOW_NORMAL,因此图片大小会随着窗口大小的变换而变化。

运行工程,结果如图3-9所示。

图3‑9

http://www.dtcms.com/a/109009.html

相关文章:

  • 浅谈软件成分分析 (SCA) 在企业开发安全建设中的落地思路
  • 数据库--SQL
  • Pytorch深度学习框架60天进阶学习计划 - 第34天:自动化模型调优
  • 维拉工时自定义字段:赋能项目数据的深度洞察 | 上新预告
  • React-router v7 第一章(安装)
  • JDBC常用的接口
  • coding ability 展开第八幕(位运算——基础篇)超详细!!!!
  • Spring Boot 集成 Redis 对哈希数据的详细操作示例,涵盖不同结构类型(基础类型、对象、嵌套结构)的完整代码及注释
  • PyQt6实例_A股日数据维护工具_使用
  • OpenCV 引擎:驱动实时应用开发的科技狂飙
  • 操作系统(一):概念及主流系统全分析
  • 大模型学习三:DeepSeek R1蒸馏模型组ollama调用流程
  • Vue2 生命周期
  • Adam vs SGD vs RMSProp:PyTorch优化器选择
  • 美关税加征下,Odoo免费开源ERP如何助企业破局?
  • 【无标题 langsmith
  • DNS域名解析过程 + 安全 / 性能优化方向
  • 在线下载国内外各种常见视频网站视频的网页端工具
  • frp 让服务器远程调用本地的服务(比如你的java 8080项目)
  • AIGC7——AIGC驱动的视听内容定制化革命:从Sora到商业化落地
  • S3C2410 的总线架构
  • OpenCV 图形API(11)对图像进行掩码操作的函数mask()
  • RK3568 gpio模拟i2c 配置hym8563 RTC时钟
  • 19c21c单机/RAC手工清理标准化文档
  • 中小企业数字化转型的本质:在Websoft9应用平台上实现开源工具与商业软件的统一
  • GitHub 趋势日报 (2025年04月02日)
  • 《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》第2章 Java内存区域与内存溢出异常
  • springboot 启动方式 装配流程 自定义starter 文件加载顺序 常见设计模式
  • 【PHP】PHP网站常见一些安全漏洞及防御方法
  • DM数据库配置归档模式的两种方式