1.读取彩色输入图像,可视化; 2.基于直方图均衡化的彩色图像对比度增强: 将输入图像由RGB空间映射至HSV空间,保持H与S通道不变,对亮度通道V进行直方图均衡化,映射回RGB空间,保存并可视化图像; 3. 直方图均衡化+饱和度增强:将输入图像映射至HSV空间,固定H不变;对亮度通道V直方图均衡化;对各像素的S通道增加一个小正数(如0.1, 0.3),并确保增加后不超过1。最后由HSV空间映射回RGB空间,保存并可视化结果。 比较原始输入图像,以及两种处理结果,理解对比度增强以及饱和度增强。给出Python代码
时间: 2024-03-10 12:46:20 浏览: 57
example.zip_matlab_动态对比度_图像增强_图像处理_直方图均衡化
以下是基于OpenCV库实现的Python代码:
```python
import cv2
import numpy as np
# 读取彩色输入图像并可视化
img = cv2.imread("input.jpg")
cv2.imshow("Input Image", img)
# 直方图均衡化的彩色图像对比度增强
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hsv_img[:,:,2] = cv2.equalizeHist(hsv_img[:,:,2])
enhanced_img = cv2.cvtColor(hsv_img, cv2.COLOR_HSV2BGR)
cv2.imshow("Contrast Enhanced Image", enhanced_img)
# 直方图均衡化+饱和度增强
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hsv_img[:,:,2] = cv2.equalizeHist(hsv_img[:,:,2])
hsv_img[:,:,1] = np.clip(hsv_img[:,:,1] + 0.3, 0, 1)
enhanced_saturation_img = cv2.cvtColor(hsv_img, cv2.COLOR_HSV2BGR)
cv2.imshow("Contrast and Saturation Enhanced Image", enhanced_saturation_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
该代码实现了对输入图像进行直方图均衡化的对比度增强以及直方图均衡化+饱和度增强,并将结果可视化。其中,第一步是读取输入图像并可视化;第二步是将输入图像转换到HSV空间,对亮度通道进行直方图均衡化,再将图像转换回RGB空间,得到对比度增强的图像;第三步是在第二步的基础上,对每个像素的饱和度通道增加一个小正数,并进行限制,再将图像转换回RGB空间,得到饱和度增强的图像。最后,使用OpenCV库中的`imshow`函数将原始输入图像和两种处理结果可视化出来,直观比较不同处理方式对图像的影响。
阅读全文