比较原始输入图像,以及两种处理结果,理解对比度增强以及饱和度增强的python代码
时间: 2023-08-20 13:07:20 浏览: 120
Python 图像对比度增强的几种方法(小结)
以下是比较原始输入图像、对比度增强和饱和度增强处理结果的Python代码:
```python
import cv2 # 导入OpenCV库
import numpy as np # 导入NumPy库
import matplotlib.pyplot as plt # 导入matplotlib库
# 读取彩色输入图像
img = cv2.imread('input_image.jpg', cv2.IMREAD_COLOR)
# 对比度增强处理
alpha = 1.5 # 对比度增强系数
beta = 0.5 # 亮度增强系数
img_contrast = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
# 饱和度增强处理
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(img_hsv)
s = cv2.add(s, 50)
img_saturation = cv2.merge([h, s, v])
img_saturation = cv2.cvtColor(img_saturation, cv2.COLOR_HSV2BGR)
# 可视化图像
fig, axs = plt.subplots(1, 3, figsize=(15, 5))
axs[0].imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
axs[0].set_title('Original Image')
axs[1].imshow(cv2.cvtColor(img_contrast, cv2.COLOR_BGR2RGB))
axs[1].set_title('Contrast Enhanced Image')
axs[2].imshow(cv2.cvtColor(img_saturation, cv2.COLOR_BGR2RGB))
axs[2].set_title('Saturation Enhanced Image')
plt.show()
```
其中,`cv2.convertScaleAbs()`函数用于对比度增强处理,`alpha`参数表示对比度增强系数,`beta`参数表示亮度增强系数。`cv2.cvtColor()`函数用于将BGR格式的图像转换为HSV格式的图像,以便对饱和度进行增强处理。`cv2.split()`函数用于将HSV格式的图像分离为三个通道,即色调、饱和度和亮度。`cv2.add()`函数用于对饱和度通道进行增强处理,增强的程度由参数决定。最后将增强后的饱和度通道与色调和亮度通道合并,再将HSV格式的图像转换为BGR格式的图像。最后使用`plt.subplots()`函数和`plt.imshow()`函数可视化原始输入图像、对比度增强和饱和度增强处理结果。
阅读全文