OpenCV (Open Source Computer Vision Library) 是一个非常强大的计算机视觉库,广泛应用于图像处理、视频分析等领域。本教程将介绍如何使用 OpenCV-Python 进行基本的图像处理操作,包括读取和显示图像、基本图像操作(如调整大小、旋转)以及简单的图像滤波技术。
安装 OpenCV-Python
首先确保你的环境中已经安装了 Python。然后在命令行中运行以下命令来安装 OpenCV-Python:
Bash
深色版本
1pip install opencv-python
如果你还需要使用一些额外的功能,比如图形界面显示,可以安装 opencv-python-headless
和 opencv-contrib-python
:
Bash
深色版本
1pip install opencv-python-headless
2pip install opencv-contrib-python
创建一个新的 Python 脚本
-
在你的项目文件夹中创建一个新的 Python 文件,例如
image_processing.py
。 -
编写代码来定义你的图像处理任务。下面是一个简单的示例:
Python
深色版本
1# image_processing.py
2
3import cv2
4import numpy as np
5
6def main():
7 # 读取图像
8 image_path = "path/to/your/image.jpg"
9 img = cv2.imread(image_path)
10
11 if img is None:
12 print("Image not found.")
13 return
14
15 # 显示原始图像
16 cv2.imshow("Original Image", img)
17 cv2.waitKey(0)
18 cv2.destroyAllWindows()
19
20 # 图像调整大小
21 resized_img = cv2.resize(img, (640, 480))
22 cv2.imshow("Resized Image", resized_img)
23 cv2.waitKey(0)
24 cv2.destroyAllWindows()
25
26 # 图像旋转
27 height, width = img.shape[:2]
28 center = (width // 2, height // 2)
29 rotation_matrix = cv2.getRotationMatrix2D(center, 45, 1.0)
30 rotated_img = cv2.warpAffine(img, rotation_matrix, (width, height))
31 cv2.imshow("Rotated Image", rotated_img)
32 cv2.waitKey(0)
33 cv2.destroyAllWindows()
34
35 # 灰度转换
36 gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
37 cv2.imshow("Gray Image", gray_img)
38 cv2.waitKey(0)
39 cv2.destroyAllWindows()
40
41 # 高斯模糊
42 blurred_img = cv2.GaussianBlur(img, (9, 9), 0)
43 cv2.imshow("Blurred Image", blurred_img)
44 cv2.waitKey(0)
45 cv2.destroyAllWindows()
46
47 # 边缘检测
48 edges = cv2.Canny(img, 100, 200)
49 cv2.imshow("Edges", edges)
50 cv2.waitKey(0)
51 cv2.destroyAllWindows()
52
53if __name__ == "__main__":
54 main()
运行脚本
确保你有一个图像文件放在指定的位置,并且文件路径正确无误。然后,在命令行中运行以下命令来执行脚本:
Bash
深色版本
1python image_processing.py
这将打开一系列窗口,每个窗口展示不同的图像处理结果。
代码解释
- 导入库 :我们使用
cv2
和numpy
。 - 读取图像 :使用
cv2.imread
函数读取图像文件。 - 显示图像 :使用
cv2.imshow
显示图像,使用cv2.waitKey(0)
等待用户按键,使用cv2.destroyAllWindows()
关闭所有打开的窗口。 - 图像调整大小 :使用
cv2.resize
函数调整图像大小。 - 图像旋转 :使用
cv2.getRotationMatrix2D
和cv2.warpAffine
函数来旋转图像。 - 灰度转换 :使用
cv2.cvtColor
将彩色图像转换为灰度图像。 - 高斯模糊 :使用
cv2.GaussianBlur
对图像进行高斯模糊处理。 - 边缘检测 :使用
cv2.Canny
进行边缘检测。
这个简单的示例应该能让你对 OpenCV-Python 的基本功能有所了解。