欢迎访问宙启技术站
智能推送

Python图像处理函数大全:10个常用技巧

发布时间:2023-06-15 04:24:22

Python作为一门通用编程语言,在图像处理领域也有着广泛的应用。通过Python中的各种图像处理函数,我们可以对图片进行不同效果的处理和优化。下面,介绍Python中常用的图像处理函数。

1、读取和保存图像

使用OpenCV库可以实现对图像的读取和保存。以下代码展示了如何读取和保存图像:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 保存图像
cv2.imwrite('image_output.jpg', img)

2、图像大小调整

图像大小调整可用于缩小或者放大图像。下面代码演示了如何对图像大小进行调整:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 调整图像大小
resized_img = cv2.resize(img, (500, 500))

3、裁剪图像

裁剪图像用于截取图像中感兴趣的部分。可以使用以下代码完成图像裁剪:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 裁剪图像
cropped_img = img[100:300, 200:400]

4、图像旋转

图像旋转可用于将图像按照一定角度进行旋转。以下代码演示了如何实现图像旋转:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 获取图像中心点
(h, w) = img.shape[:2]
center = (w/2, h/2)

# 设定旋转角度
angle = 45

# 设定旋转矩阵,调整图像大小以免旋转后裁剪掉部分图像
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated_img = cv2.warpAffine(img, M, (w, h))

5、图像翻转

图像翻转可用于将图像按照水平或垂直方向进行翻转。以下代码演示了如何实现图像翻转:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 翻转图像
flipped_img = cv2.flip(img, 1)  #1表示水平翻转,0表示垂直翻转,-1表示水平垂直翻转

6、调整图像亮度和对比度

可以使用以下代码调整图像亮度和对比度:

import cv2
import numpy as np

# 读取图像
img = cv2.imread('image.jpg')

# 调整亮度和对比度
alpha = 1.5  # 调整对比度倍数
beta = 50  # 调整亮度数值
adjusted_img = cv2.addWeighted(img, alpha, np.zeros(img.shape, dtype=img.dtype), 0, beta)

7、图像模糊

图像模糊可用于隐藏图像中的噪声和细节,也可用于图像的平滑化处理。以下代码演示了如何实现图像模糊:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 模糊图像
blurred_img = cv2.medianBlur(img, 5)  # 调整卷积核大小以改变模糊程度

8、图像边缘检测

边缘检测可用于提取图像中的边缘信息。以下代码演示了如何实现图像边缘检测:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 边缘检测
edged_img = cv2.Canny(img, 100, 200)  # 调整阈值以改变边缘检测结果

9、图像膨胀和腐蚀

图像膨胀和腐蚀可用于对图像中的目标进行形态学处理。以下代码演示了如何实现图像膨胀和腐蚀:

import cv2
import numpy as np

# 读取图像和二值化
img = cv2.imread('image.jpg', 0)

# 设定膨胀和腐蚀的卷积核
kernel = np.ones((3,3), np.uint8)

# 膨胀图像
dilated_img = cv2.dilate(img, kernel)

# 腐蚀图像
eroded_img = cv2.erode(img, kernel)

10、人脸识别

人脸识别可用于在图像中识别人脸并进行相关处理。以下代码演示了如何使用OpenCV中的人脸识别功能:

import cv2

# 读取图像
img = cv2.imread('image.jpg')

# 加载人脸识别模型
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 可以下载OpenCV中的人脸特征分类器

# 进行人脸识别
faces = face_cascade.detectMultiScale(img, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30))

# 在图像中标注人脸区域
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

以上就是Python中常用的图像处理函数,可以根据需要进行选择使用。