准备N张图片文件(图自选),要求对图像进行批量处理,实现细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果及冷暖色调整等功能,要求设计过程中写出每个功能代码并注释。
时间: 2024-03-24 11:39:28 浏览: 56
图片批量处理
好的,我可以给你提供一些Python代码,实现对图像进行批量处理,包括细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果以及冷暖色调整等功能。
以下是整个批量处理的流程:
1. 读取所有的图片文件;
2. 对于每张图片,依次应用细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果和冷暖色调等功能,并保存处理后的图片。
注意:为了方便起见,以下代码中的所有图片文件均假设存储在同一个文件夹中。
```python
from PIL import Image, ImageFilter, ImageEnhance, ImageOps
# 全局变量
input_folder = "input_folder_path"
output_folder = "output_folder_path"
def read_images():
"""
读取所有图片文件
"""
images = []
for filename in os.listdir(input_folder):
if filename.endswith(".jpg") or filename.endswith(".png"):
img_path = os.path.join(input_folder, filename)
img = Image.open(img_path)
images.append(img)
return images
def detail_enhance(img):
"""
细节增强
"""
enhancer = ImageEnhance.Detail(img)
img = enhancer.enhance(1.5)
return img
def edge_enhance(img):
"""
边缘增强
"""
img = img.filter(ImageFilter.EDGE_ENHANCE)
return img
def resize(img, size):
"""
图像缩放
"""
img = img.resize(size)
return img
def median_filter(img, size):
"""
中值滤波
"""
img = img.filter(ImageFilter.MedianFilter(size))
return img
def sharpen(img):
"""
图像锐化
"""
img = img.filter(ImageFilter.SHARPEN)
return img
def pencil_sketch(img):
"""
手绘效果
"""
img = img.convert('L')
img = img.filter(ImageFilter.CONTOUR)
img = ImageOps.invert(img)
return img
def adjust_color(img, temperature, tint):
"""
调整冷暖色调
"""
img = img.convert('RGB')
r, g, b = img.split()
r_adjust = ImageOps.colorize(r, (temperature, 0, 0))
b_adjust = ImageOps.colorize(b, (0, 0, tint))
img = Image.merge('RGB', (r_adjust, g, b_adjust))
return img
def main():
# 读取所有图片文件
images = read_images()
for img in images:
# 细节增强
img = detail_enhance(img)
# 边缘增强
img = edge_enhance(img)
# 图像缩放
img = resize(img, (img.width//2, img.height//2))
# 中值滤波
img = median_filter(img, 3)
# 图像锐化
img = sharpen(img)
# 手绘效果
img = pencil_sketch(img)
# 调整冷暖色调
img = adjust_color(img, 7000, -2000)
# 保存处理后的图片
output_path = os.path.join(output_folder, f"{img.filename.split('/')[-1]}_processed.png")
img.save(output_path)
if __name__ == "__main__":
main()
```
以上代码中实现了读取所有图片文件、细节增强、边缘增强、图像缩放、中值滤波、图像锐化、手绘效果、冷暖色调等功能。你可以根据自己的需求,选择需要的功能并进行修改。
阅读全文