编程实现以下处理:图像变暗、图像变亮、降低对比度、gamma变换,应具有可视化输出的完整可运行代码
时间: 2024-09-10 07:16:47 浏览: 66
在Python中,我们可以使用PIL(Pillow库)对图像进行各种处理,包括变暗、变亮、降低对比度以及Gamma变换。这里提供一个基本的示例代码:
```python
from PIL import Image, ImageEnhance, ImageOps
# 加载图像
def load_and_process_image(image_path):
img = Image.open(image_path)
# 图像变暗
def darken_image(factor=0.5):
enhancer = ImageEnhance.Brightness(img)
darker_img = enhancer.enhance(factor)
return darker_img
# 图像变亮
def lighten_image(factor=1.5):
enhancer = ImageEnhance.Brightness(img)
brighter_img = enhancer.enhance(factor)
return brighter_img
# 降低对比度
def reduce_contrast(factor=0.7):
enhancer = ImageEnhance.Contrast(img)
contrast_img = enhancer.enhance(factor)
return contrast_img
# Gamma变换
def gamma_correction(gamma=1.2):
img = img.point(lambda p: p * (255 / 255) ** gamma, '1')
return img
# 选择并应用处理
process = {'darken': darken_image, 'lighten': lighten_image, 'reduce_contrast': reduce_contrast, 'gamma_correction': gamma_correction}
processed_img = process['darken']() # 替换'darken'为其他处理方式
# 显示原图和处理后的图像
side_by_side = Image.new("RGB", (img.width*2, img.height), "white")
side_by_side.paste(img, (0, 0))
side_by_side.paste(processed_img, (img.width, 0))
# 可视化输出
side_by_side.show()
# 使用函数
load_and_process_image('example.jpg')
```
这个代码会打开指定路径的图片,并按你选择的方式(如'darken')对其进行处理。你可以根据需要调整每个处理函数中的参数。
阅读全文