python实现提取彩色图像HSI分量,增大饱和度分量然后进行直方图均衡化
时间: 2023-07-18 16:03:42 浏览: 162
下面是 Python 实现提取彩色图像 HSI 分量、增大饱和度分量并进行直方图均衡化的代码:
```python
import cv2
import numpy as np
# 读入彩色图像
img = cv2.imread('color_image.jpg')
# 将图像从 BGR 转换为 HSI 颜色空间
hsi_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 提取饱和度分量
s_channel = hsi_img[:,:,1]
# 增大饱和度分量
s_channel = np.clip(s_channel*1.5, 0, 255).astype(np.uint8)
# 对饱和度分量进行直方图均衡化
s_channel = cv2.equalizeHist(s_channel)
# 将修改后的饱和度分量赋值回 HSI 图像中
hsi_img[:,:,1] = s_channel
# 将修改后的 HSI 图像转换回 BGR 颜色空间
result_img = cv2.cvtColor(hsi_img, cv2.COLOR_HSV2BGR)
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Result Image', result_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
代码中首先使用 `cv2.imread` 函数读入彩色图像,然后使用 `cv2.cvtColor` 函数将图像从 BGR 颜色空间转换为 HSI 颜色空间。接着,提取饱和度分量,并使用 `np.clip` 函数将饱和度分量值缩放到 0-255 范围内,再使用 `cv2.equalizeHist` 函数对饱和度分量进行直方图均衡化。最后,将修改后的饱和度分量赋值回 HSI 图像中,并使用 `cv2.cvtColor` 函数将修改后的 HSI 图像转换回 BGR 颜色空间。最终,使用 `cv2.imshow` 函数显示原始图像和处理后的图像。
阅读全文