Python图像处理教程:
环境准备
1. 确保已安装Python。
2. 安装必要的图像处理库:
`Pillow`:用于图像读取、显示和基础操作。
`OpenCV`:用于图像读取、显示、基本操作和更高级的图像处理功能。
`NumPy`:用于图像处理和数值计算。
安装命令:
pip install pillowpip install opencv-pythonpip install numpy
图像读取与显示
使用Pillow
from PIL import Image读取图像文件img = Image.open('example.jpg')显示图像img.show()
使用OpenCV
import cv2from matplotlib import pyplot as plt读取图像文件image = cv2.imread('example.jpg')将图像从BGR转换为RGBimage_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)显示图像plt.imshow(image_rgb)plt.axis('off')plt.show()
图像基本操作
缩放和旋转
使用Pillow:
缩放图像resized_image = img.resize((200, 200))保存缩放后的图像resized_image.save('resized_output.png')旋转图像rotated_image = img.rotate(45)保存旋转后的图像rotated_image.save('rotated_output.png')
使用OpenCV:
调整图像大小resized_image = cv2.resize(image, (400, 400))旋转图像(h, w) = image.shape[:2]center = (w // 2, h // 2)M = cv2.getRotationMatrix2D(center, 45, 1.0)rotated_image = cv2.warpAffine(image, M, (w, h))

裁剪
使用Pillow:
裁剪图像cropped_image = img.crop((100, 100, 400, 400))保存裁剪后的图像cropped_image.save('cropped_output.png')
使用OpenCV:
图像裁剪cropped_image = image[50:200, 100:300]显示裁剪后的图像plt.imshow(cv2.cvtColor(cropped_image, cv2.COLOR_BGR2RGB))plt.title('Cropped Image')plt.axis('off')plt.show()
图像处理高级操作
图像平滑和锐化
使用Pillow:
应用模糊滤镜blurred_image = image.filter(ImageFilter.GaussianBlur(5))
使用OpenCV:
应用高斯模糊blurred_image = cv2.GaussianBlur(image, (5, 5), 0)
图像二值化和阈值分割
使用OpenCV:
二值化图像_, binary_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)阈值分割_, threshold_image = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY_INV)
图像特征提取和描述
边缘检测
使用OpenCV:
Canny边缘检测edges = cv2.Canny(image, 100, 200)
特征描述和匹配
使用OpenCV:
SIFT特征检测sift = cv2.SIFT_create()keypoints, descriptors = sift.detectAndCompute(image, None)
以上是使用Python进行图像处理的基础教程,涵盖了从环境准备到基本操作,再到高级处理的各个方面。你可以根据具体需求选择合适的库和方法进行更深入的学习和实践。
