编程实现以下处理:图像变暗、图像变亮、降低对比度、gamma变换,应具有可视化输出的代码。
时间: 2024-09-09 11:08:33 浏览: 64
在Python中,我们可以使用PIL(Pillow)库来进行图像处理,包括变暗、变亮、降低对比度和伽马变换。下面是一个简单的示例:
```python
from PIL import Image, ImageEnhance
# 加载图像
img = Image.open('example.jpg')
# 图像变暗 (Brightness)
enhancer_brightness = ImageEnhance.Brightness(img)
darkened_img = enhancer_brightness.enhance(0.5) # 0.5 表示50%的亮度
darkened_img.save('darker.jpg')
# 图像变亮
brightened_img = enhancer_brightness.enhance(1.5) # 1.5表示150%的亮度
brightened_img.save('brighter.jpg')
# 降低对比度
enhancer_contrast = ImageEnhance.Contrast(img)
low_contrast_img = enhancer_contrast.enhance(0.5) # 0.5表示降低一半对比度
low_contrast_img.save('lower_contrast.jpg')
# gamma变换 (这里只提供理论说明,实际应用需要第三方库如PIL gamma校正并不直接支持)
# Gamma变换涉及调整每个像素值的映射,例如:
# gamma = 1.5 (常见的高光增强)
# img.gamma(1.5)
# 这里你需要使用额外的库如`imageio`或自定义函数来实现,因为PIL本身不直接支持伽马矫正。
# 可视化输出
# 要显示原始图片和处理后的结果,可以使用matplotlib
import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8, 8))
axs[0, 0].imshow(img, cmap='gray')
axs[0, 0].set_title('Original Image')
axs[0, 1].imshow(darkened_img, cmap='gray')
axs[0, 1].set_title('Darker')
axs[1, 0].imshow(brightened_img, cmap='gray')
axs[1, 0].set_title('Brighter')
axs[1, 1].imshow(low_contrast_img, cmap='gray')
axs[1, 1].set_title('Lower Contrast')
for ax in axs.flat:
ax.axis('off')
plt.show()
阅读全文