引用:W. Zhang et al., "Underwater Image Enhancement via Weighted Wavelet Visual Perception Fusion," in IEEE Transactions on Circuits and Systems for Video Technology, vol. 34, no. 4, pp. 2469-2483, April 2024, doi: 10.1109/TCSVT.2023.3299314.
首先,我觉得从初学者大家都要考虑发论文的情况下,我就讲解这篇小波融合(比较少人做,不建议大家在用图像金字塔做了,不好发文章,可以考虑这个融合代码)来给大家进行讲解。(含有自己复现的部分代码)本人比较懒,公式全都是截图的。
一、论文的整体架构
做图像融合,一般都有两个图像进行融合。该方法有:1.颜色校正;2.局部对比度增强;3.全局对比度增强;4.小波融合。两个输入为:1.在颜色校正的基础上进行局部对比度增强;2.在颜色校正的基础上进行全局对比度增强;
二、颜色校正
为一个亮度通道,就是通过(1)选择R,G,B通道最大值为亮度通道。就是分别算出每个通道(R,G,B)的平均值.就是一个最基本的颜色补偿的公式了。紧接着对R,G,B三个通道进行直方图拉伸把范围拉伸到0-255.
这个就是一个衰减图,作者的想法是想补偿这个衰减图来达到这个颜色校正的效果,y就是亮度因子。接着通过最好的一个亮度衰减图与直方图拉伸、原图构建等式关系达到颜色校正的图像。部分代码如下:
function LACCR=COLOR(img)
r=img(:,:,1);
r=im2double(r);
Ar=1-r.^(1.2);
meanAr=mean(mean(Ar));
g=Input(:,:,2);
g=im2double(g);
Ag=1-g.^(1.2);
meanAg=mean(mean(Ag));
b=Input(:,:,3);
b=im2double(b);
Ab=1-b.^(1.2);
meanAb=mean(mean(Ab));
if(meanAr>meanAg)&&(meanAr>meanAb)
Am=Ar;
elseif(meanAb>meanAr)&&(meanAb>meanAg)
Am=Ab;
elseif(meanAg>meanAr)&&(meanAg>meanAb)
Am=Ag;
end
三、全局对比度增强
这个为信息熵的公式,使用这个是因为信息熵可以度量图像直方图的均匀分布,预测图像细节的丰富程度。
这个方法就是计算直方图分割阈值,然后进行动态拉伸。具体地,在整个灰度范围上遍历动态阈值Iht。在每次遍历中,该方法对阈值左右的直方图执行拉伸操作。接着,该方法计算并求和左直方图和右直方图的信息熵。直到求出左右信息熵之和的最大值,对应的分离阈值点为最优动态分离阈值Ibest。
这个就是左右直方图的信息熵。
这个就是计算合并后直方图的完整颜色校正图像(这个是直方图的一个计算公式,可以去查)。部分代码如下:
function threshold=Maxentropy(img)
[x,y]=size(img);
hist=imhist(img);
p=hist/(x*y);
sumP=cumsum(p);
sumQ=1-sumP;
c0=zeros(256,256);
c1=zeros(256,256);
for i=1:256
for j=1:i
if sumP(i)>0
c0(i,j)=p(j)/sumP(i);
else
c0(i,j)=0;
end
for k=i+1:256
if sumQ(i)>0;
c1(i,k)=p(k)/sumQ(i);
四、局部对比度增强
该算法首先将图像的RGB通道转化为L通道,在L通道上利用局部块进行对比度增强。这是由于L通道包含了灰度信息,而对比度增强就是描述图像中灰度级别的差异变量。
这个代表局部区域的平均灰度值,代表经过盒子滤波器的局部像素矩阵。在图像处理任务中,低频成分往往对应于图像的平滑部分,高频成分则对应边缘与细节相关。因此作者假设UB 为低频分量,从而分离得到高频分量。
为局部对比度增强的值,可以通俗的理解为原图减去基础层就得到高频分量。就是一个比例因子避免过度增强。
因为他是在LAB通道进行局部增强的,他在L通道运用上述公式达到局部对比度增强,然后在这里他在AB通道进行补偿,因为AB通道是代表颜色偏移的,这样补偿可以在增强对比度的同时有效避免色偏。
五、小波融合(最关键的地方,也就是大家论文所要用的框架)
作者采用的原因:本文采用加权小波视觉融合策略,将不同尺度的高低频分量进行融合,得到高质量的水下图像。小波变换具有多分辨率、多尺度和多时域的特点,在图像压缩、去噪、融合等方面得到了广泛地应用。以下这部分就是小波融合的流程图了
这里就是定义了小波融合中的近似系数和细节系数。为二阶高斯函数,为二维的小波函数。首先通过一阶小波变换获得每个增强版本的近似低频分量和垂直、水平和对角高频分量。小波分解用于从各种增强图像版本中提取低频和高频分量。低频分量携带图像的主要信息和结构元素,而高频分量包含更精细的细节。因此,小波逆变换用于对分解的低频和高频分量进行上采样以重建增强的水下图像,
WIT就是matlab自带的小波逆变换函数,Ud就是上采样的因子,为低频分量和垂直、水平和对角高频分量(通俗的理解为就是图像的细节,低频就是图像的背景).针对每个高频分量引入一个加权因子来改善图像的纹理细节。平均梯度是用于评估图像中的细节水平的度量。值越大,表示图像包含的细节越多
这三个代表权重因子,λVH、λHH和λDH分别表示重建图像的垂直、水平和对角线分量的权重因子。GVH、GHH和GDH分别表示重建图像的垂直、水平和对角分量的平均梯度。接下来得到最终融合的公式:
部分代码如下:
function Y=FDWB(M1,M2,zt,ap,mp)
[z1,s1]=size(M1);
[z2,s2]=size(M2);
if(z1~=z2)|(s1~=s2)
error('Input images are not of same size');
end;
h1=[-1,2,6,2,-1,0,0]/(4*sqrt(2));
g1=[0,0,-2,4,-2,0,0]/(4*sqrt(2));
h2=[0,0,0,2,4,2,0]/(4*sqrt(2));
g2=[0,-1,-2,6,-2,-1,0]/(4*sqrt(2));
E=cell(3,zt);
for i1=1:zt
[z,s]=size(M1);
zl(i1)=z;
sl(i1)=s;
Z1=dec(conv2(es(M1,7,1),g1,'valid'),2);
A1=dec(conv2(es(Z1,7,2),g1','valid'),1);
A2=dec(conv2(es(Z1,7,2),h1','valid'),1);
五、总结
这个框架我个人认为还是挺不错的,最起码现在比较少人用。如果考虑发论文建议用这个框架并进行改进。谢谢大家的支持!
标签:增强,融合,于小波,代读,直方图,图像,对比度,图像增强,分量 From: https://blog.csdn.net/weixin_55059761/article/details/141814409