如何使用python实现图片处理?

首先安装Pillow、OpenCV、numpy和matplotlib库;接着用Pillow进行图像打开、调整大小、转灰度、滤镜等基础操作;然后使用OpenCV读取图像,转灰度图并进行边缘检测;最后通过matplotlib显示结果或保存处理后的图像,注意颜色通道顺序差异。

用Python处理图片主要依赖一些成熟的库,最常用的是Pillow(PIL)、OpenCV 和 matplotlib。下面介绍基本操作和使用方法,帮助你快速上手。

安装必要的库

开始前先安装需要用到的库:

pip install pillow opencv-python numpy matplotlib

其中:

  • Pillow:适合基础图像操作,如裁剪、缩放、滤镜等
  • OpenCV (cv2):功能强大,适用于计算机视觉任务
  • numpy:用于图像数组处理
  • matplotlib:显示图像

使用Pillow进行基本图像处理

Pillow适合日常图像处理任务。例如:

from PIL import Image, ImageFilter

打开图像

img = Image.open('example.jpg')

显示图像信息

print(img.size, img.mode)

调整大小

resized = img.resize((800, 600))

转灰度

gray = img.convert('L')

应用模糊滤镜

blurred = img.filter(ImageFilter.BLUR)

保存结果

blurred.save('blurred.jpg')

使用OpenCV处理图像

OpenCV更适合图像分析和高级操作:

import cv2

读取图像

img = cv2.imread('example.jpg')

转为灰度图

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

边缘检测

edges = cv2.Canny(gray, 100, 200)

显示图像(需配合matplotlib)

import matplotlib.pyplot as plt plt.imshow(edges, cmap='gray') plt.show()

保存结果

cv2.imwrite('edges.jpg', edges)

常见操作示例

以下是一些实用技巧:

  • 批量重命名并压缩图像:遍历文件夹,用Pillow调整大小并保存
  • 图像增强:调节亮度、对比度(Pillow 的 ImageEnhance 模块)
  • 裁剪指定区域:img.crop((left, top, right, bottom))
  • 叠加文字水印:使用 ImageDraw.text()
  • 人脸检测:OpenCV 提供了预训练的 Haar 分类器

基本上就这些。根据需求选择合适的工具,Pillow 简单易用,OpenCV 功能更强。不复杂但容易忽略细节,比如颜色通道顺序(BGR vs RGB),处理时注意转换。多试几个例子就能熟练。