主权项 |
一种基于双字典学习的图像超分辨重建方法,包括如下步骤:(1)输入一幅待处理的低分辨图像XL,图像大小为m×n,设定图像的放大倍数为2;(2)对待处理的低分辨图像XL进行大小为3×3的分块,相邻块之间重叠2个像素,得到G个待处理低分辨图像块Pl(i),i=1,...,G;(3)输入5幅高分辨训练图像和相应的5幅低分辨训练图像,利用训练图像构造5个高分辨字典Dh1,Dh2,...,Dh5和相应的5个低分辨字典Dl1,Dl2,...,Dl5;(4)在第1对高分辨和低分辨字典(Dh1,Dl1)下,重构大小为2m×2n的高分辨估计图像XH1:4a)提取待处理低分辨图像块Pl(i),初始化Pl(i)的标记为i=1;4b)利用如下公式计算待处理低分辨图像块Pl(i)与低分辨字典Dl1中各元素的距离DIST1(t):DIST1(t)=|Pl(i)‑Dl1(t)|2,其中Dl1(t),t=1,2,...,T,t表示第t个低分辨字典元素,T表示低分辨字典元素的总数量,即T=20000,|·|2表示取(·)的绝对值平方操作;4c)将距离DIST1(t)中最小的前5个结果对应的5个低分辨字典元素记为Dl1(k),k=1,...,5,通过低分辨字典Dl1与高分辨字典Dh1之间的对应关系,找到高分辨字典Dh1中相对应的5个高分辨字典元素Dh1(k),k=1,...,5;4d)利用局部权重公式计算5个低分辨字典元素Dl1(k)重构图像块Pl(i)的重构系数w(k),k=1,...,5;4e)将重构系数w(k)与步骤4c)中搜索到的5个高分辨字典元素Dh1(k)进行 求和,得到高分辨图像块Ph(i),其计算公式为: <mrow> <msub> <mi>P</mi> <mi>h</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>Σ</mi> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>5</mn> </munderover> <mi>w</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <msub> <mi>D</mi> <mrow> <mi>h</mi> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow>4f)设置标记i=i+1,判断是否满足条件i>G,如果满足,则得到重构的高分辨估计图像XH1,执行步骤(5),否则返回步骤4b);(5)利用与步骤(4)相同方法分别获得在字典对(Dh2,Dl2),(Dh3,Dl3),…,(Dh5,Dl5)下的高分辨估计图像XH2,XH3,XH4,XH5;(6)利用待处理的低分辨图像XL构造一对高低频字典Df={Dhf,Dlf};(7)设近邻参数A=5,在高低频字典Df={Dhf,Dlf}下重构大小为2m×2n的高分辨估计图像XH6:7a)利用matlab软件中的imresize函数将待处理的低分辨图像XL进行预放大,放大倍数2,得到预放大的图像XL*,图像大小为2m×2n;7b)对预放大的图像XL*进行大小为3×3的分块,相邻块重叠2个像素,得到预放大图像块Pl(j)*,j=1,...,S;7c)利用如下公式计算预放大的图像块Pl(j)*与低频字典Dlf中各元素的距离DIST2(u):DIST2(u)=|Pl(j)*‑Dlf(u)|2,其中Dlf(u),u=1,2,...,U,u表示第u个低频字典元素,U表示低频字典元素的总数量,|·|2表示取(·)绝对值的平方操作;7d)将距离DIST2(u)中最小的前A个结果对应的A个低频字典元素记为Dlf(r),r=1,2,...A,通过低频字典Dlf和高分辨字典Dhf的对应关系,找到高频字典Dhf相对应的A个高频字典元素Dhf(r),r=1,...,A;7e)利用局部权重公式计算A个低频字典元素Dlf(r)重构预放大图像块Pl(j)* 的重构系数c(r),r=1,...,A;7f)将重构系数c(r)与步骤7d)中搜索到的A个高频字典元素Dhf(r)进行求和,得到重构的高频图像块Ph(j)*: <mrow> <msub> <mi>P</mi> <mi>h</mi> </msub> <msup> <mrow> <mo>(</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>*</mo> </msup> <mo>=</mo> <munderover> <mi>Σ</mi> <mrow> <mi>r</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>A</mi> </munderover> <mi>c</mi> <mrow> <mo>(</mo> <mi>r</mi> <mo>)</mo> </mrow> <msub> <mi>D</mi> <mi>hf</mi> </msub> <mrow> <mo>(</mo> <mi>r</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow>7g)将得到的高频图像块Ph(j)*与预放大图像块Pl(j)*相加,得到重建的高分辨图像块Xh(j)*;7h)设置标记j=j+1,判断是否满足条件j>S,如果满足,则得到放大2倍的高分辨图像XH6,执行步骤(8),否则返回步骤7c);(8)分别设步骤(7)中的近邻参数分别设步骤(7)中的近邻参数A=4,A=3,A=2,A=1,重复步骤(7)得到高分辨估计图像XH7,XH8,XH9,XH10;(9)将获取的10幅高分辨估计图像XH1,XH2,...,XH10全部拉成列,构成高维数据X,利用低秩分解算法对高维数据X进行低秩分解,得到X的低秩矩阵L和稀疏矩阵S;(10)通过matlab软件中的reshape函数,将低秩矩阵L中的每一列还原成图像形式,得到10幅低秩图像L(z),z=1,...,10;(11)按以下公式对10幅低秩图像L(z)做均值处理,得到最终清晰图像XH: <mrow> <msub> <mi>X</mi> <mi>H</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>Σ</mi> <mrow> <mi>z</mi> <mo>=</mo> <mn>1</mn> </mrow> <mn>10</mn> </msubsup> <mi>L</mi> <mrow> <mo>(</mo> <mi>z</mi> <mo>)</mo> </mrow> </mrow> <mn>10</mn> </mfrac> <mo>.</mo> </mrow> |