直方图均衡化实现暗光增强

直方图均衡化(Histogram Equalization, HE) 是一个很经典的方法,可以用来实现暗光图像增强(Low Light Image Enhancement, LLIE) ,尽管现在深度学习很发达,但是从实用和效率的角度而言,该方法还是很好用的。并且该方法也是无监督的,它不需要任何正常光图片作为监督学习。只需要导入暗光图片即可。
具体代码也很简单

import matplotlib.pyplot as plt
from skimage import io, exposure

# Load RGB image
image = io.imread('./low/1.png')

# Apply histogram equalization to each color channel separately
image_eq = exposure.equalize_hist(image, nbins=256)

# Display the original and the equalized image
fig, ax = plt.subplots(ncols=2, figsize=(10, 5))
ax[0].imshow(image)
ax[0].set_title('Original')
ax[1].imshow(image_eq)
ax[1].set_title('Histogram equalization')
plt.show()

实验结果如下
在这里插入图片描述
图片用的是LLIE中很常用的一个数据集LOL-v1
为了更好地验证生成图像的好坏,可以引入PSNR(峰值信噪比,Peak Signal-to-Noise Ratio)和SSIM(结构相似度,Structure Similarity)两个metrics来计算增强图像的质量。其中PSNR越大,图像差异越小,SSIM越大,两张图像越相似,并且SSIM<=1。

计算他们也很简单. 由于之前HE生成的图像是(0,1)区间的,原图是(0,255),需要对image_eq 乘255.

from skimage import io, metrics

# Load the original and reconstructed images
img_original = io.imread('./high/1.png')
img_reconstructed = image_eq*255

# Calculate PSNR
psnr = metrics.peak_signal_noise_ratio(img_original, img_reconstructed)

# Calculate SSIM
ssim = metrics.structural_similarity(img_original, img_reconstructed, multichannel=True)

# Print the results
print(f"PSNR: {psnr:.2f}")
print(f"SSIM: {ssim:.2f}")

计算结果为psnr: 20.94, SSIM: 0.67

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值