取出hsi图像的亮度通道代码
时间: 2023-08-06 12:12:25 浏览: 102
提取RGB-HSI值的matlab代码.zip
假设你已经加载了 HSI 图像,并且存储在变量 `hsi_image` 中,可以使用以下代码提取亮度通道:
```python
import cv2
import numpy as np
# 将 HSI 图像转换为 BGR 图像
bgr_image = cv2.cvtColor(hsi_image, cv2.COLOR_HSV2BGR)
# 分离 BGR 图像的各个通道
b_channel, g_channel, r_channel = cv2.split(bgr_image)
# 计算亮度通道,使用 OpenCV 自带的函数
y_channel = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2YCrCb)[:, :, 0]
# 或者手动计算亮度通道,使用公式 Y = R * 0.299 + G * 0.587 + B * 0.114
y_channel_manual = cv2.merge([
cv2.addWeighted(r_channel, 0.299, 0, 0, 0),
cv2.addWeighted(g_channel, 0.587, 0, 0, 0),
cv2.addWeighted(b_channel, 0.114, 0, 0, 0)
]).astype(np.uint8)
```
其中,`cv2.cvtColor` 函数用于颜色空间转换,`cv2.split` 函数用于分离各个通道,`cv2.addWeighted` 函数用于加权求和。最终得到的 `y_channel` 和 `y_channel_manual` 都是包含亮度信息的图像数组。
阅读全文