将低照度图像分别在hsi三个方向进行图像增强,其中亮度增强采用MSRCR python代码
时间: 2023-07-16 08:15:02 浏览: 105
以下是基于Python的MSRCR图像增强代码示例:
``` python
import cv2
import numpy as np
def MSRCR(img):
# 将图像转换为浮点数类型
img = np.float32(img) / 255.0
# 计算图像的均值和标准差
mu = cv2.GaussianBlur(img, (11, 11), 15)
mu_sq = mu * mu
sigma = cv2.GaussianBlur(img * img, (11, 11), 15)
sigma = np.sqrt(sigma - mu_sq)
# 设置增强的参数
alpha = 125
beta = 46
gamma = 4
# 计算增强后的图像
img_msrcr = (img - mu) * alpha / (sigma + beta)
img_msrcr = np.clip(img_msrcr, 0, 1)
img_msrcr = img_msrcr ** gamma
# 将图像转换为8位整型并返回
img_msrcr = np.uint8(img_msrcr * 255)
return img_msrcr
# 读取图像
img = cv2.imread('low_light_image.jpg', cv2.IMREAD_GRAYSCALE)
# 在HSI空间进行图像增强
hsv = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
hsv = cv2.cvtColor(hsv, cv2.COLOR_BGR2HSV)
hsv[:, :, 2] = MSRCR(hsv[:, :, 2])
output = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
output = cv2.cvtColor(output, cv2.COLOR_BGR2GRAY)
# 显示原图和增强后的图像
cv2.imshow('Input', img)
cv2.imshow('Output', output)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先将输入图像转换为浮点数类型并计算其均值和标准差。然后,我们设置增强的参数,并使用这些参数计算增强后的图像。最后,我们将增强后的图像转换为8位整型并返回。在主程序中,我们将图像转换为HSI空间,并对亮度进行增强。最后,我们将增强后的图像转换回灰度图像并显示原始图像和增强后的图像。
阅读全文
相关推荐

















