准备N张图片文件(图自选),要求对图像进行批量处理,实现细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能,要求设计过程中写出每个功能代码并注释。
时间: 2024-03-18 14:38:28 浏览: 101
好的,以下是使用Python及OpenCV库对N张图片进行批量处理,实现细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能的代码:
```python
import cv2
import os
# 定义图像处理函数
def process_image(image_file):
# 读取图片
img = cv2.imread(image_file)
# 实现细节增强
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
img_detail = cv2.detailEnhance(img, sigma_s=10, sigma_r=0.15)
img_detail = cv2.morphologyEx(img_detail, cv2.MORPH_CLOSE, kernel)
# 实现边缘增强
img_edge = cv2.medianBlur(img_detail, 5)
img_edge = cv2.Canny(img_edge, 50, 150)
# 实现图像缩放
img_resized = cv2.resize(img, (0, 0), fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
# 实现中值滤波
img_median = cv2.medianBlur(img, 5)
# 实现图像锐化
kernel_sharp = np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]])
img_sharp = cv2.filter2D(img, -1, kernel_sharp)
# 实现手绘效果
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_blur = cv2.GaussianBlur(img_gray, (21,21), 0, 0)
img_pencil = cv2.divide(img_gray, img_blur, scale=256)
# 实现冷暖色调整
img_warm = cv2.applyColorMap(img, cv2.COLORMAP_AUTUMN)
img_cold = cv2.applyColorMap(img, cv2.COLORMAP_WINTER)
# 保存处理后的图片
image_name = os.path.basename(image_file)
cv2.imwrite(f"processed_{image_name}", img_detail)
cv2.imwrite(f"processed_{image_name}", img_edge)
cv2.imwrite(f"processed_{image_name}", img_resized)
cv2.imwrite(f"processed_{image_name}", img_median)
cv2.imwrite(f"processed_{image_name}", img_sharp)
cv2.imwrite(f"processed_{image_name}", img_pencil)
cv2.imwrite(f"processed_{image_name}", img_warm)
cv2.imwrite(f"processed_{image_name}", img_cold)
# 遍历指定文件夹下的所有图片文件
for file_name in os.listdir('image_folder_path'):
if file_name.endswith('.jpg'): # 只处理jpg格式的图片
process_image(os.path.join('image_folder_path', file_name))
```
在上述代码中,我们定义了一个`process_image`函数,该函数对传入的图片文件进行细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能的处理。在遍历指定文件夹下的所有图片文件时,我们调用该函数对每张图片进行处理,并将处理后的图片保存到同一文件夹下。需要注意的是,代码中的`image_folder_path`需要替换为实际存放待处理图片的文件夹路径。
阅读全文