Python OpenCV 入门 这篇就够了

目录

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模块及其功能概述:

  1. Core模块:这是OpenCV的基础模块,包含了一些基本的数据结构和函数,如图像矩阵(cv::Mat)、动态数据结构、绘图函数、数学函数等。

  2. Imgproc模块:这个模块包含了大多数图像处理功能,如滤波、色彩空间转换、直方图、特征检测、图像变换等。

  3. Video模块:这个模块包含了一些视频分析功能,如光流法、背景/前景分割、摄像头标定、视频稳定等。

  4. Features2d模块:这个模块主要用于特征检测和描述,如SIFT、SURF、ORB等算法,以及特征匹配和几何变换等。

  5. HighGui模块:这个模块提供了用户界面功能,如窗口显示、鼠标事件处理、图像保存和加载等。

  6. VideoIO模块:这个模块负责视频的读取和写入,支持多种视频文件格式。

  7. Calib3d模块:这个模块主要用于相机标定、三维重建和立体视觉等功能。

  8. 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:这是一个可选参数,用于指定读取图像的方式。常用的标志有:

  1. cv2.IMREAD_COLOR:以彩色图像模式读取图片(默认值,等价于 flags=1)。
  2. cv2.IMREAD_GRAYSCALE:以灰度模式读取图片(等价于flags=0)。
  3. 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])
  1. filename:要写入的文件的名称,包括路径和文件扩展名。
  2. img:要保存的图像,通常是一个NumPy数组。
  3. params:一个可选参数,用于指定图像编码的参数。在大多数情况下,可以省略这个参数。
  4. 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属性获取图像的大小

示例:

print("彩色图像的大小:", color_image.size)  # 输出: 高度 * 宽度 * 通道数  
print("灰度图像的大小:", gray_image.size)  # 输出: 高度 * 宽度

3.4.3 dtype属性获取图像的大小

示例:

print("彩色图像的数据类型:", color_image.dtype)  # 输出: uint8  
print("灰度图像的数据类型:", gray_image.dtype)  # 输出: uint8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

探索星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值