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

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.dtcms.com/a/312620.html

相关文章:

  • Kafka——怎么重设消费者组位移?
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • 「iOS」————属性关键字底层原理
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • 网络缓冲区的设计以及C++实现
  • 【Python练习】075. 编写一个函数,实现简单的语音识别功能
  • 项目日记---高并发内存池整体框架
  • 人工智能与医疗健康:AI 助力医疗的新格局
  • 信号传播速度与延时
  • [硬件电路-143]:模拟电路 - 开关电源与线性稳压电源的详细比较
  • PLC传感器接线与输出信号接线
  • Redis实战(7)-- 高级特性 Redis Stream数据结构与基础命令
  • 【0基础PS】PS工具详解--文字工具
  • .NET 开源节点编辑器,将你的程序功能模块节点化
  • pytorch 安装
  • Paxos 算法是什么?介绍 RAFT 和 ZAB,以及它们之间的区别?会有脑裂问题吗?为什么?
  • 算法竞赛阶段二-数据结构(39)数据结构栈模拟实现
  • AI陪伴赛道,热闹背后是真需求还是泡沫?
  • 应急响应整理
  • Back to the Features:附录A
  • [创业之路-532]:知识、技能、技术、科学各自解决什么问题?
  • 手机(电脑)与音响的蓝牙通信
  • 15_01_opencv_形态学滤波
  • 动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
  • C++引用:高效安全的别名机制详解
  • 用于 UBI 的 Elasticsearch 插件:从搜索查询中分析用户行为
  • centos9 安装docker engine
  • Parcel 使用详解:零配置的前端打包工具
  • RPG增容3:尝试使用MVC结构搭建玩家升级UI(一)
  • Spring MVC 九大组件源码深度剖析(一):MultipartResolver - 文件上传的幕后指挥官