【图像增强】基于Retinex模型和多尺度融合的低光照图像增强(含MSE)附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。
🍎完整代码获取 定制创新 论文复现私信
🍊个人信条:做科研,博学之、审问之、慎思之、明辨之、笃行之,是为:博学慎思,明辨笃行。
🔥 内容介绍
一、引言
在图像处理领域,低光照图像增强旨在提升低光照条件下拍摄图像的视觉质量,以满足各种应用需求,如监控、医学成像等。Retinex 模型因其模拟人类视觉系统对光照感知的特性,常被用于图像增强。结合多尺度融合技术和均方误差(MSE)评估,能够更有效地实现低光照图像的增强,并对增强效果进行量化评估。
二、Retinex 模型原理
三、多尺度融合技术
- 多尺度分析
:不同尺度的图像信息包含不同层次的细节。大尺度图像信息反映图像的整体结构,小尺度图像信息则包含丰富的细节信息。通过对图像进行多尺度分解,可以更好地提取和融合不同层次的特征。例如,使用高斯金字塔对图像进行多尺度分解,将图像分解为不同分辨率的层级。
- 融合策略
:在不同尺度上分别应用 Retinex 模型进行图像增强,得到不同尺度下的增强图像。然后,根据一定的融合规则将这些增强图像进行融合。一种常见的融合规则是基于权重的融合,为每个尺度的增强图像分配不同的权重,权重的确定可以根据图像的局部特征,如纹理丰富程度等。例如,在纹理丰富的区域,赋予小尺度增强图像更大的权重,以突出细节;在平滑区域,赋予大尺度增强图像更大的权重,以保证整体结构的稳定性。
四、均方误差(MSE)在图像增强中的应用
五、基于 Retinex 模型和多尺度融合的低光照图像增强实现步骤
- 图像预处理
:对输入的低光照图像进行必要的预处理,如归一化处理,将图像像素值映射到 [0, 1] 区间,以便后续处理。
- 多尺度分解
:使用高斯金字塔等方法对预处理后的图像进行多尺度分解,得到不同尺度的图像层级。
- Retinex 增强
:在每个尺度上,应用 Retinex 模型对图像进行增强,得到不同尺度下的增强图像。
- 多尺度融合
:根据基于局部特征的权重分配策略,将不同尺度的增强图像进行融合,得到最终的增强图像。
- MSE 评估
:计算增强图像与参考图像(或近似参考图像)之间的均方误差,评估增强效果。根据 MSE 值,可以进一步调整多尺度融合权重或 Retinex 模型参数,以优化增强效果。
⛳️ 运行结果
📣 部分代码
%==========================================================================
% J. Yan, J. Li, X. Fu, "No-Reference Quality Assessment of Contrast-Distorted Images using Contrast Enhancement"
%
% Please try your own contrast distorted images with different levels.
% Larger predicted score means better contrast quality.
% This model was trained by all the images in CCID2104 database using
% LIBSVM.
%==========================================================================
function [predicted_score] = ceiq(Img)
load('model.mat');
feat = [];
gImg = rgb2gray(Img);
enhancedImg = histeq(gImg);
[fmean, fmap] = ssim(gImg, enhancedImg);
f1 = fmean; %image similarity, f1
h1 = imhist(gImg, 128);
h2 = imhist(enhancedImg, 128);
h1 = h1 / (size(gImg, 1) * size(gImg, 2));
h2 = h2 / (size(gImg, 1) * size(gImg, 2));
goodones = h1 > 0 & h2 > 0;
f2 = - sum(h1(goodones) .* log2(h1(goodones))); % f2, Eq. (3)
f3 = - sum(h2(goodones) .* log2(h2(goodones))); %f3, Eq. (3)
f4 = - sum(h1(goodones) .* log2(h2(goodones))); %f4, Eq. (4)
f5 = - sum(h2(goodones) .* log2(h1(goodones))); %f5, Eq. (5)
feat = [feat f1 f2 f3 f4 f5];
predicted_score = svmpredict(1, feat, model);
end
🔗 参考文献
[1] Yan J , Li J , Fu X .No-Reference Quality Assessment of Contrast-Distorted Images using Contrast Enhancement[J]. 2019.DOI:10.48550/arXiv.1904.08879.
