低照度图像分别在HSI三个方向上进行图像增强,其中亮度方向上采用多尺度Retinex算法 python代码
时间: 2023-07-15 09:13:20 浏览: 119
多尺度retinex算法,图像增强
以下是基于Python实现的多尺度Retinex算法的亮度方向图像增强代码示例:
```python
import cv2
import numpy as np
def mult_scale_retinex(img, sigma_list):
retinex = np.zeros_like(img)
for sigma in sigma_list:
img_blur = cv2.GaussianBlur(img, (0, 0), sigma)
img_log = np.log10(img / 255.0 + 1e-8)
img_log_blur = np.log10(img_blur / 255.0 + 1e-8)
img_diff = img_log - img_log_blur
retinex += img_diff
retinex = retinex / len(sigma_list)
return retinex
def brightness_enhancement(img):
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
h, s, v = cv2.split(hsv)
sigma_list = [15, 80, 250]
v_enhanced = np.exp(mult_scale_retinex(v, sigma_list))
v_enhanced = np.uint8(np.clip(v_enhanced * 255.0, 0, 255))
hsv_enhanced = cv2.merge([h, s, v_enhanced])
img_enhanced = cv2.cvtColor(hsv_enhanced, cv2.COLOR_HSV2BGR)
return img_enhanced
```
通过调用mult_scale_retinex函数,该函数可以对输入的图像在不同的尺度下进行Retinex增强,最终得到增强后的亮度图像。然后将增强后的亮度图像合并到原始的HSI图像中,再将合并后的HSI图像转换为BGR图像输出,从而实现了亮度方向上的图像增强。
阅读全文