对低照度图像的亮度通道用多尺度Retinex增强图像亮度代码
时间: 2023-11-27 20:53:28 浏览: 110
正确 Retinex代码.zip_MultiScale Retinex_Retinex改进_图像增强_图像增强改进_多尺度增强
5星 · 资源好评率100%
以下是Python实现的多尺度Retinex增强图像亮度的代码:
```python
import cv2
import numpy as np
def multi_scale_retinex(img, sigma_list):
retinex = np.zeros_like(img)
for sigma in sigma_list:
gaussian = cv2.GaussianBlur(img, (0, 0), sigma)
img_log = np.log10(img + 1)
gaussian_log = np.log10(gaussian + 1)
retinex += img_log - gaussian_log
retinex = retinex / len(sigma_list)
retinex = np.power(10, retinex) - 1
retinex = np.uint8(retinex)
return retinex
if __name__ == '__main__':
img = cv2.imread('low_light_image.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
sigma_list = [15, 80, 250]
enhanced_img = multi_scale_retinex(img, sigma_list)
cv2.imshow('Input Image', img)
cv2.imshow('Enhanced Image', enhanced_img)
cv2.waitKey(0)
```
在这个代码中,我们使用了OpenCV库实现了多尺度高斯模糊。函数`multi_scale_retinex`接收一张灰度图像和一个sigma列表作为输入,然后运行多尺度Retinex算法并返回增强后的图像。在主函数中,我们读取了一张低照度图像,将其转换为灰度图像,并使用上述函数增强了图像亮度。最后,我们将输入图像和增强后的图像一起显示出来。
阅读全文