Python提供了丰富的图像处理库,主要有:
1. Pillow:
- Pillow是Python中最流行的图像处理库,可以轻松完成图像处理任务。
- 用法:
from PIL import Image
img = Image.open('test.jpg')
# 图像大小
w, h = img.size
# 缩放图像
img.thumbnail((200, 200))
# 图像过滤
img = img.filter(ImageFilter.BLUR)
# 图像旋转
img = img.rotate(90)
# 图像裁剪
img = img.crop((0, 0, 100, 100))
# 图像保存
img.save('test2.jpg')
2. OpenCV:
- OpenCV是一个跨平台的计算机视觉库,主要用于图像处理和计算机视觉。
- 用法:
import cv2
img = cv2.imread('test.jpg')
# 图像大小
h, w, c = img.shape
# 图像缩放
img = cv2.resize(img, (200, 200))
# 图像旋转
img = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE)
# 图像裁剪
img = img[0:100, 0:100]
# 人脸检测
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(img)
# 图像保存
cv2.imwrite('test2.jpg', img)
3. scikit-image:
- scikit-image是一个Python图像处理库,基于numpy和scipy。
- 提供更高级的图像处理功能,如图像分割.特征检测等。
- 用法:
from skimage import io
from skimage.transform import resize
from skimage.feature import canny
from skimage.morphology import dilation, erosion
image = io.imread('test.jpg')
# 图像缩放
image_resized = resize(image, (200, 200))
# 图像边缘检测
edges = canny(image, sigma=3)
# 图像膨胀和腐蚀
dilated = dilation(edges, selem=selem.disk(5))
eroded = erosion(edges, selem=selem.disk(5))