低照度图像增强细节算法代码
时间: 2023-07-03 15:18:04 浏览: 89
以下是一种基于Retinex算法的低照度图像增强细节的Python代码实现:
```python
import cv2
import numpy as np
def retinex(image, sigma=50):
"""
Retinex算法实现
:param image: 输入图像
:param sigma: 高斯核方差
:return: 输出图像
"""
# 将图像转换为浮点类型
image = image.astype(np.float32)
# 对图像进行高斯模糊
blur = cv2.GaussianBlur(image, (0, 0), sigma)
# 计算原始图像和高斯模糊图像的差值
diff = image - blur
# 对差值进行均值和方差的估计
avg = np.mean(diff)
var = np.mean(np.square(diff - avg))
# 对图像进行Retinex增强
output = np.log10(1 + image - avg)
output = np.multiply(output, 255 / np.max(output))
return output.astype(np.uint8)
# 读取低照度图像
image = cv2.imread('low_light_image.jpg')
# 对图像进行Retinex增强
output = retinex(image)
# 显示结果
cv2.imshow('Low Light Image', image)
cv2.imshow('Retinex Enhanced Image', output)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个实现中,我们使用了Retinex算法对低照度图像进行增强。首先,我们将输入图像转换为浮点类型,然后对其进行高斯模糊。接下来,我们计算原始图像和高斯模糊图像的差值,并对差值进行均值和方差的估计。最后,我们对图像进行Retinex增强,并将其转换为8位无符号整数类型以便于显示。
阅读全文