当前位置: 首页 > 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.lryc.cn/news/608718.html

相关文章:

  • 企业IT管理——集团IT项目实施管理办法模板
  • Linux Deepin深度操作系统应用商店加载失败,安装星火应用商店
  • 学习笔记《区块链技术与应用》第六天 问答 匿名技术 零知识证明
  • 机器翻译的分类:规则式、统计式、神经式MT的核心区别
  • 基于单片机火灾报警系统/防火防盗系统设计
  • 块三角掩码(Block-Triangular Masking)
  • MySQL的创建管理表:
  • Memcached Slab分配器:零碎片的极速内存管理
  • [spring-cloud: 服务发现]-源码解析
  • Day 30:模块和库的导入
  • 风光储综合能源系统双层优化规划设计【MATLAB模型实现】
  • 第九章:了解特殊场景下的redis
  • 控制建模matlab练习07:比例积分控制-③PI控制器的应用
  • Spring 03 Web springMVC
  • ESP32学习-I2C(IIC)通信详解与实践
  • C++:STL中的栈和队列的适配器deque
  • Spring Boot AOP 优雅实现异常重试机制
  • AD方案(OpenLDAP或微软AD)适配信创存在的不足以及可能优化方案
  • Nvidia Orin DK 刷机CUDA TensorRT+硬盘扩容+ROS+Realsense+OpenCV+Ollama+Yolo11 一站式解决方案
  • CUDA杂记--nvcc使用介绍
  • Elastic 9.1/8.19:默认启用 BBQ,ES|QL 支持跨集群搜索(CCS)正式版,JOINS 正式版,集成 Azure AI Foundry
  • Jupyter Notebook 中高效处理和实时展示来自 OpenCV 和 Pillow 的图像数据探究
  • Jetpack Compose for XR:构建下一代空间UI的完整指南
  • SpringBoot+Vue高校实验室预约管理系统 附带详细运行指导视频
  • 力扣经典算法篇-41-旋转图像(辅助数组法,原地旋转法)
  • RabbitMQ面试精讲 Day 9:优先级队列与惰性队列
  • 昇思学习营-开发版-模型推理和性能优化
  • Android 之 MVP架构
  • Redis+Lua的分布式限流器
  • Python 实例属性与方法命名冲突:一次隐藏的Bug引发的思考