对低照度图像转化为hsi 并对亮度通道用多尺度Retinex增强代码
时间: 2023-11-27 12:53:32 浏览: 100
以下是将低照度图像转化为HSI并对亮度通道进行多尺度Retinex增强的Python代码:
```python
import cv2
import numpy as np
# 读入低照度图像
img = cv2.imread('low_light_image.jpg')
# 转换为 HSI 图像
hsi_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 获取亮度通道
intensity = hsi_img[:,:,2]
# 多尺度 Retinex 增强
sigma_list = [15, 80, 250]
retinex = np.zeros_like(intensity)
for sigma in sigma_list:
gaussian = cv2.GaussianBlur(intensity, (0, 0), sigma)
gaussian = np.where(gaussian == 0, 0.1, gaussian)
retinex += np.log(intensity) - np.log(gaussian)
retinex = np.exp(retinex/len(sigma_list))
# 将增强后的亮度通道替换原图像的亮度通道
hsi_img[:,:,2] = retinex
# 转换回 RGB 图像
enhanced_img = cv2.cvtColor(hsi_img, cv2.COLOR_HSV2BGR)
# 显示增强后的图像
cv2.imshow('Enhanced Image', enhanced_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先读入低照度图像并将其转换为HSI图像。然后,我们获取亮度通道并对其进行多尺度Retinex增强。最后,我们将增强后的亮度通道替换原图像的亮度通道,并将HSI图像转换回RGB图像以显示增强后的图像。
阅读全文