将RGB的图像转化为HSI图像 python代码
时间: 2023-08-08 12:13:21 浏览: 136
下面是一个简单的Python代码,将RGB图像转换为HSI图像:
```python
import numpy as np
import cv2
# 读取RGB图像
img = cv2.imread('input.jpg')
# 将图像转换为浮点类型
img_float = np.float32(img) / 255.0
# 分离通道
B, G, R = cv2.split(img_float)
# 计算亮度
I = (R + G + B) / 3.0
# 计算饱和度
S = 1 - np.minimum(np.minimum(R, G), B) / I
# 计算色相
theta = np.arccos(0.5 * ((R - G) + (R - B)) / np.sqrt((R - G) ** 2 + (R - B) * (G - B)))
H = theta.copy()
H[B > G] = 2 * np.pi - H[B > G]
H /= 2 * np.pi
# 将HSI图像转换为uint8类型
H = (H * 255).astype(np.uint8)
S = (S * 255).astype(np.uint8)
I = (I * 255).astype(np.uint8)
# 合并通道
hsi = cv2.merge([H, S, I])
# 显示结果
cv2.imshow('HSI', hsi)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,`input.jpg`是输入的RGB图像文件名,输出的HSI图像将被显示在窗口中。
阅读全文