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

OpenCV轻松入门_面向python(第一章OpenCV入门)

1.1安装使用

在环境中使用pip install opencv-python进行安装

安装后,在 Python 中输入

import cv2
print(cv2.__version__)

如果没有报错,并打印出版本号,则说明安装成功。

1.2图像处理基本操作

1.2.1 读取图像

读取图像函数语法格式如下:
retval = cv2.imread(filename[, flags])

参数说明:

  • retval:返回值,其值是读取到的图像。如果未读取到图像,则返回 None
  • filename:要读取的图像的完整文件名。
  • flags:读取标记。常见取值有:
    • 1(默认值):以彩色图像加载(忽略 alpha 通道);
    • 0:以灰度图像加载;
    • -1:加载图像,包括 alpha 通道。
import cv2
retval = cv2.imread('lena.jpg', -1)
print(retval)

1.2.2显示图像

namedWindow函数:
函数 cv2.namedWindow()用来创建指定名称的窗口
语法格式:
None = cv2.namedWindow( winname )
其中winname是要创建的窗口的名称。

imshow函数:
函数 cv2.imshow()用来显示图像,其语法格式为:
None = cv2.imshow( winname, mat )

  • winname: 是窗口名称。
  • mat: 是要显示的图像。
import cv2
lena = cv2.imread('lena.jpg', -1)
cv2.namedWindow("suo_long") #创建指定名称的窗口
cv2.imshow("suo_long",lena) #在suo_long窗口显示lena图像
cv2.waitKey(0)              #是窗口保留不闪退,等待用户按下任意键退出

报错:“error: (-215:Assertion failed) size.width>0 && size.height>0 in function ‘cv::imshow’”
说明当前要显示的图像是空的(None),这通常是由于在读取文件时没有找到图像文件造成的。一般来说,没有找到要读取的图像文件,可能是因为文件名错误;如果确认要读取的图像的完整文件名(路径名和文件名)没有错,那么往往是工作路径配置错误造成的。
waitKey函数:
函数 cv2.waitKey()用来等待按键,当用户按下键盘后,该语句会被执行,并获取返回值。
retval = cv2.waitKey( [ delay ] )

  • retval 表示返回值。如果没有按键被按下,则返回−1;如果有按键被按下,则返回该按键的 ASCII 码。
  • delay 表示等待键盘触发的时间,单位是 ms。当该值是负数或者零时,表示无限等待。该值默认为 0。
    在实际使用中,可以通过函数 cv2.waitKey()获取按下的按键,并针对不同的键做出不同的反应,从而实现交互功能。例如,如果按下 A 键,则关闭窗口;如果按下 B 键,则生成一个窗口副本。
import cv2
lena = cv2.imread('lena.jpg', -1)
cv2.namedWindow("suo_long") #创建指定名称的窗口
cv2.imshow("suo_long",lena) #在suo_long窗口显示lena图像
key = cv2.waitKey()
if key==ord('A'):           #函数 ord(),用来获取字符的 ASCII 码值。cv2.namedWindow("PressA")cv2.imshow("PressA",lena)
elif key==ord('B'):cv2.namedWindow("PressB")cv2.imshow("PressB",lena)
#如果按下的是键盘上的 A 键,则新出现的窗口名称为 PressA
#如果按下的是键盘上的 B 键,则新出现的窗口名称为 PressB

destroyWindow函数:
函数 cv2.destroyWindow()用来释放(销毁)指定窗口,其语法格式为:
None = cv2.destroyWindow( winname )
其中,winname 是窗口的名称。

destroyAllWindows函数:
函数 cv2.destroyAllWindows()用来释放(销毁)所有窗口,其语法格式为:
None = cv2.destroyAllWindows( )

import cv2
lena = cv2.imread('lena.jpg', -1)
cv2.namedWindow("suo_long") #创建指定名称的窗口
cv2.imshow("suo_long",lena) #在suo_long窗口显示lena图像
cv2.waitKey()
cv2.destroyAllWindows("suo_long")#销毁suo_long窗口

1.2.3保存图像

imwrite函数:
函数 cv2.imwrite(),用来保存图像,该函数的语法格式为:
retval = cv2.imwrite( filename, img[, params] )
式中:

  • retval 是返回值。如果保存成功,则返回逻辑值真(True);如果保存不成功,则返回逻辑值假(False)。
  • filename 是要保存的目标文件的完整路径名,包含文件扩展名。
  • img 是被保存图像的名称。
  • params 是保存类型参数,是可选的。
import cv2
lena = cv2.imread('lena.jpg', -1)
r = cv2.imwrite('suo.jpg',lena)

先读取当前目录下的图像 lena.jpg,生成它的一个副本图像,然后将该图像以名称 suo.jpg 存储到当前目录下。

http://www.xdnf.cn/news/16902.html

相关文章:

  • 【PDF + ZIP 合并器:把ZIP文件打包至PDF文件中】
  • RabbitMQ面试精讲 Day 8:死信队列与延迟队列实现
  • 反向代理+网关部署架构
  • Flask ORM 模型(轻松版)
  • 如何在不停机的情况下,将MySQL单库的数据迁移到分库分表的架构上?
  • Unity_数据持久化_IXmlSerializable接口
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘scikit-learn’问题
  • ESP32学习-I2C(IIC)通信详解与实践
  • Azure DevOps — Kubernetes 上的自托管代理 — 第3部分
  • GB 44496-2024《汽车软件升级通用技术要求》对行业从业者的变革性影响
  • 13-day10生成式任务
  • 从Docker衔接到导入黑马商城以及前端登录显示用户或密码错误的相关总结(个人理解,仅供参考)
  • 【AI编程工具IDE/CLI/插件专栏】-国外IDE与Cursor能力对比
  • 【openlayers框架学习】九:openlayers中的交互类(select和draw)
  • 【LLM】 BaseModel的作用
  • MySQL面试题及详细答案 155道(021-040)
  • Spring Cloud微服务中的内存泄漏问题定位与解决方案
  • SelectDB数据库,新一代实时数据仓库的全面解析与应用
  • Linux 环境下 Docker 安装与简单使用指南
  • 百度招黑产溯源安全工程师
  • 《软件测试与质量控制》实验报告二 单元测试
  • MSQL-聚簇索引与非聚簇索引的比较
  • Python编程基础与实践:Python文件处理入门
  • SpringBoot 信用卡检测、OpenAI gym、OCR结合、DICOM图形处理、知识图谱、农业害虫识别实战
  • 【7.5 Unity AssetPostprocessor】
  • 【自动化运维神器Ansible】YAML支持的数据类型详解:构建高效Playbook的基石
  • linux ext4缩容home,扩容根目录
  • Trae + Notion MCP:将你的Notion数据库升级为智能对话机器人
  • 元宇宙重构未来交通新图景
  • 无人机光伏巡检漏检率↓78%!陌讯多模态融合算法实战解析