目录
1.初步认识OpenCV
1.1OpenCv概述
1.2OpenCV模块
2.图像处理的基本操作
2.1 imread()方法读取图像
2.2 显示图像
2.2.1 imshow()方法显示图像
2.2.2 waitKey()方法设置按键事件
2.2.3 destroyAllWindows()方法销毁所有窗口
3.3 imwrite保存图像
3.4 获取图像属性
3.4.1 shape属性获取图像的形状
3.4.2 size属性获取图像的大小
3.4.3 dtype属性获取图像的大小
1.初步认识OpenCV
1.1OpenCv概述
OpenCV(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,由英特尔公司研发。OpenCV使用C++语言编写,但也提供了Python、Java和MATLAB等语言的接口,这使其在各种编程语言中都能得到广泛应用。同时,OpenCV支持Windows、Linux、Android和Mac OS等多个操作系统,具有良好的跨平台性能。
OpenCV的主要功能包括图像处理和计算机视觉。图像处理主要关注于对图像的处理操作,如增强、还原、去噪、分割等。而计算机视觉则更侧重于使用计算机来模拟人的视觉,这是计算机视觉领域的最终目标。OpenCV实现了图像处理和计算机视觉方面的很多通用算法,因此已成为计算机视觉领域最有力的研究工具。
1.2OpenCV模块
OpenCV模块是指OpenCV库中的各个功能组件或子库,这些模块提供了丰富的计算机视觉和图像处理功能。以下是一些常见的OpenCV模块及其功能概述:
-
Core模块:这是OpenCV的基础模块,包含了一些基本的数据结构和函数,如图像矩阵(cv::Mat)、动态数据结构、绘图函数、数学函数等。
-
Imgproc模块:这个模块包含了大多数图像处理功能,如滤波、色彩空间转换、直方图、特征检测、图像变换等。
-
Video模块:这个模块包含了一些视频分析功能,如光流法、背景/前景分割、摄像头标定、视频稳定等。
-
Features2d模块:这个模块主要用于特征检测和描述,如SIFT、SURF、ORB等算法,以及特征匹配和几何变换等。
-
HighGui模块:这个模块提供了用户界面功能,如窗口显示、鼠标事件处理、图像保存和加载等。
-
VideoIO模块:这个模块负责视频的读取和写入,支持多种视频文件格式。
-
Calib3d模块:这个模块主要用于相机标定、三维重建和立体视觉等功能。
-
Objdetect模块:这个模块包含了一些目标检测算法,如人脸检测、行人检测、文本检测等。
2.安装OpenCY
pip install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple/
3.图像处理的基本操作
3.1 imread()方法读取图像
image = cv2.imread(filename, flags)
filename
:要读取的图像文件的名称,包括路径和扩展名。
flags
:这是一个可选参数,用于指定读取图像的方式。常用的标志有:
-
cv2.IMREAD_COLOR
:以彩色图像模式读取图片(默认值,等价于flags=1
)。 -
cv2.IMREAD_GRAYSCALE
:以灰度模式读取图片(等价于flags=0
)。 -
cv2.IMREAD_UNCHANGED
:包括 alpha 通道(等价于flags=-1
)。
3.2 显示图像
3.2.1 imshow()方法显示图像
cv2.imshow(winname, mat)
winname
是窗口名称,mat
是要显示的图像。这个函数没有返回值,但它会在指定的窗口中显示图像。
3.2.2 waitKey()方法设置按键事件
主要作用是等待用户按下某个键,并返回该按键的 ASCII 码值。这个函数在图像处理的过程中经常被用来实现按键控制,例如通过按下特定的键(如 Esc 键)来退出程序
3.2.3 destroyAllWindows()方法销毁所有窗口
示例:
import cv2
# 读取图像
image = cv2.imread('path_to_image.jpg')
# 显示图像
cv2.imshow('Image', image)
# 等待用户按键
cv2.waitKey(0)
# 关闭所有窗口
cv2.destroyAllWindows()
3.3 imwrite保存图像
cv2.imwrite(filename, img, [params])
-
filename
:要写入的文件的名称,包括路径和文件扩展名。 -
img
:要保存的图像,通常是一个NumPy数组。 -
params
:一个可选参数,用于指定图像编码的参数。在大多数情况下,可以省略这个参数。 -
imwrite
函数返回一个布尔值,如果图像成功写入文件,则返回True
;如果写入失败,则返回False
。
示例:
import cv2
# 读取图像
image = cv2.imread('input.jpg')
# 对图像进行一些处理...
# 例如,我们可以将图像转换为灰度
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 将处理后的图像写入新的文件
cv2.imwrite('output.jpg', gray_image)
首先使用cv2.imread
函数读取一个名为input.jpg
的图像文件。然后,我们使用cv2.cvtColor
函数将图像转换为灰度图像。最后,我们使用cv2.imwrite
函数将处理后的灰度图像写入到名为output.jpg
的新文件中。
3.4 获取图像属性
3.4.1 shape属性获取图像的形状
示例:
import cv2
# 读取彩色图像
color_image = cv2.imread('color_image.jpg')
print("彩色图像的形状:", color_image.shape) # 输出: (高度, 宽度, 通道数)
# 读取灰度图像
gray_image = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCALE)
print("灰度图像的形状:", gray_image.shape) # 输出: (高度, 宽度)
3.4.2 size属性获取图像的大小
示例:文章来源:https://www.toymoban.com/news/detail-835170.html
print("彩色图像的大小:", color_image.size) # 输出: 高度 * 宽度 * 通道数
print("灰度图像的大小:", gray_image.size) # 输出: 高度 * 宽度
3.4.3 dtype属性获取图像的大小
示例:文章来源地址https://www.toymoban.com/news/detail-835170.html
print("彩色图像的数据类型:", color_image.dtype) # 输出: uint8
print("灰度图像的数据类型:", gray_image.dtype) # 输出: uint8
到了这里,关于Python OpenCV 入门 这篇就够了的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!