发明名称 基于方向性梯度的高分辨率图像重构方法
摘要 本发明公开了一种基于方向性梯度的高分辨率图像重构方法,包括如下步骤:步骤一:获得输入低分辨率图像<img file="DDA0000613066790000011.GIF" wi="199" he="64" />的主纹理方向θ;步骤二:利用双三次插值方法将低分辨率图像I插值成一幅高维度的插值图像I<sub>L</sub>;步骤三:变量初始化以及参数的选取;步骤四:获得模糊算子矩阵Fh和共轭模糊算子矩阵FHh;步骤五:更新x<sub>ij</sub>的值;步骤六:更新I<sub>H</sub>的值;步骤七:更新<img file="DDA0000613066790000012.GIF" wi="59" he="77" />的值;步骤八:判别是否收敛。本发明通过引入方向性梯度正则项,更好的表示和挖掘隐含在图像中的方向纹理信息,从而为病态的高分辨率重构问题引入更有价值的先验信息,得到效果更佳的高分辨率图像。
申请公布号 CN104504654A 申请公布日期 2015.04.08
申请号 CN201410675313.7 申请日期 2014.11.21
申请人 哈尔滨工业大学 发明人 沈毅;伍政华;金晶;李丹丹;王振华
分类号 G06T5/00(2006.01)I 主分类号 G06T5/00(2006.01)I
代理机构 哈尔滨龙科专利代理有限公司 23206 代理人 高媛
主权项 一种基于方向性梯度的高分辨率图像重构方法,其特征在于所述方法步骤如下:步骤一、获得输入低分辨率图像<img file="FDA0000613066760000011.GIF" wi="206" he="70" />的主纹理方向θ:步骤11、计算低分辨率图像I的水平梯度Δ<sub>1</sub>I和垂直梯度Δ<sub>2</sub>I;步骤12、对于一个确定的角度α<sub>0</sub>和长度β,按照以下公式计算低分辨率图像I在α<sub>0</sub>下的方向梯度值:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>DTV</mi><mrow><mo>(</mo><mi>I</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>&Sigma;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow></msub><mi>DI</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><mi>DI</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><mi>cos</mi><msub><mi>&alpha;</mi><mn>0</mn></msub></mtd><mtd><mi>sin</mi><msub><mi>&alpha;</mi><mn>0</mn></msub></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><msub><mi>&alpha;</mi><mn>0</mn></msub></mtd><mtd><mi>cos</mi><msub><mi>&alpha;</mi><mn>0</mn></msub></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>&Delta;</mi><mn>1</mn></msub><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>&Delta;</mi><mn>2</mn></msub><mi>I</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000613066760000012.GIF" wi="1657" he="183" /></maths>步骤13、确定出低分辨率图像I的主纹理方向θ:令α<sub>0</sub>从[‑π,π]中变化,间隔为‑π/24,计算出不同α<sub>0</sub>对应的DTV(I)值,并找到最小的DTV(I)值所对应的α<sub>0</sub>值,将这个角度值确定为主纹理的方向θ;步骤二、利用双三次插值方法将低分辨率图像I插值成一幅高维度的插值图像I<sub>L</sub>,设插值后的图像像素点数量是原来的k<sup>2</sup>倍,即<img file="FDA0000613066760000013.GIF" wi="281" he="91" />步骤三、变量初始化以及参数的选取:初始化变量<img file="FDA0000613066760000014.GIF" wi="591" he="96" />t=0,其中i=1,...,km,j=1,...,kn,x<sub>ij</sub>和<img file="FDA0000613066760000015.GIF" wi="58" he="87" />均是维度为2的列向量,(0)代表初始值,(t)代表第t次的迭代更新值;<img file="FDA0000613066760000016.GIF" wi="271" he="95" />代表想要得到的高分辨率图像;选取以下参数的值:λ,μ,β,γ,模糊算子<img file="FDA0000613066760000017.GIF" wi="235" he="73" />p为一个奇数,最大迭代次数T,迭代停止判别值tol;步骤四、获得模糊算子矩阵Fh和共轭模糊算子矩阵FHh;步骤五、更新x<sub>ij</sub>的值:步骤51、计算<img file="FDA0000613066760000018.GIF" wi="87" he="89" />的水平梯度<img file="FDA0000613066760000019.GIF" wi="120" he="85" />和垂直梯度<img file="FDA00006130667600000110.GIF" wi="152" he="84" />步骤52、按照下式计算<img file="FDA00006130667600000111.GIF" wi="84" he="92" />在θ下的方向梯度值:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>&Lambda;</mi><mi>ij</mi></msub><mrow><mo>(</mo><msubsup><mi>I</mi><mi>H</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><mi>cos</mi><mi>&theta;</mi></mtd><mtd><mi>sin</mi><mi>&theta;</mi></mtd></mtr><mtr><mtd><mo>-</mo><mi>sin</mi><mi>&theta;</mi></mtd><mtd><mi>cos</mi><mi>&theta;</mi></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>&Delta;</mi><mn>1</mn></msub><msubsup><mi>I</mi><mi>H</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>&Delta;</mi><mn>2</mn></msub><msubsup><mi>I</mi><mi>H</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000613066760000021.GIF" wi="1042" he="203" /></maths>步骤53、计算<img file="FDA0000613066760000022.GIF" wi="114" he="97" />的值,<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>ij</mi><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><mi>sgn</mi><mrow><mo>(</mo><msub><mi>&Lambda;</mi><mi>ij</mi></msub><mrow><mo>(</mo><msubsup><mi>I</mi><mi>H</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>)</mo></mrow><mo>.</mo><mo>*</mo><mi>max</mi><mrow><mo>(</mo><mo>|</mo><msub><mi>&Lambda;</mi><mi>ij</mi></msub><mrow><mo>(</mo><msubsup><mi>I</mi><mi>H</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>|</mo><mo>-</mo><mfrac><mn>1</mn><mi>&mu;</mi></mfrac><mo>,</mo><mn>0</mn><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000613066760000023.GIF" wi="1045" he="159" /></maths>其中sgn为符号函数,即当s>0时,sgn(s)=1,当s=0时,sgn(s)=0,当s<0时,sgn(s)=‑1;max为取最大值函数,.*为向量间的点乘运算;步骤六、更新I<sub>H</sub>的值:步骤61、将步骤二获得的<img file="FDA0000613066760000024.GIF" wi="254" he="91" />填充到一个(km+p‑1)×(kn+p‑1)维0矩阵的第1到km行和1到kn列,记为I′<sub>L</sub>;步骤62、对I′<sub>L</sub>做快速傅里叶变换,再点乘以共轭模糊算子矩阵FHh,再对该结果做反傅里叶变换得到一个矩阵,最后取出该矩阵的中间km×kn子矩阵记为Γ(I<sub>L</sub>);步骤63、初始化两个维数为km×kn的0矩阵A<sup>1</sup>和A<sup>2</sup>,并计算:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfenced open='(' close=')'><mtable><mtr><mtd><msubsup><mi>A</mi><mi>ij</mi><mn>1</mn></msubsup></mtd></mtr><mtr><mtd><msubsup><mi>A</mi><mi>ij</mi><mn>2</mn></msubsup></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>cos</mi><mi>&theta;</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&theta;</mi></mtd></mtr><mtr><mtd><mi>sin</mi><mi>&theta;</mi></mtd><mtd><mi>cos</mi><mi>&theta;</mi></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&beta;</mi></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mrow><mo>(</mo><msubsup><mi>x</mi><mi>ij</mi><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>-</mo><msubsup><mover><mi>x</mi><mo>~</mo></mover><mi>ij</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000613066760000025.GIF" wi="1013" he="214" /></maths>步骤64、对矩阵A<sup>1</sup>实行如下运算:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mo>&dtri;</mo><mn>1</mn></msub><msubsup><mi>A</mi><mi>ij</mi><mn>1</mn></msubsup><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mo>-</mo><msubsup><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mi>j</mi></mrow><mn>1</mn></msubsup></mtd><mtd><mi>i</mi><mo>=</mo><mi>km</mi></mtd></mtr><mtr><mtd><msubsup><mi>A</mi><mi>ij</mi><mn>1</mn></msubsup><mo>-</mo><msubsup><mi>A</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn><mi>j</mi></mrow><mn>1</mn></msubsup></mtd><mtd><mi>i</mi><mo>=</mo><mn>2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>km</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><msubsup><mi>A</mi><mi>ij</mi><mn>1</mn></msubsup></mtd><mtd><mi>i</mi><mo>=</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000613066760000026.GIF" wi="832" he="314" /></maths>对矩阵A<sup>2</sup>实行如下运算:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mo>&dtri;</mo><mn>2</mn></msub><msubsup><mi>A</mi><mi>ij</mi><mn>2</mn></msubsup><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mo>-</mo><msubsup><mi>A</mi><mrow><mi>ij</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></msubsup></mtd><mtd><mi>j</mi><mo>=</mo><mi>kn</mi></mtd></mtr><mtr><mtd><msubsup><mi>A</mi><mi>ij</mi><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>A</mi><mrow><mi>ij</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></msubsup></mtd><mtd><mi>j</mi><mo>=</mo><mn>2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>kn</mi><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><msubsup><mi>A</mi><mi>ij</mi><mn>2</mn></msubsup></mtd><mtd><mi>j</mi><mo>=</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000613066760000027.GIF" wi="817" he="314" /></maths>步骤65、计算线性方程组右边项,<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>Eq</mi><mo>_</mo><mi>r</mi><mo>=</mo><mi>&Gamma;</mi><mrow><mo>(</mo><msub><mi>I</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>+</mo><mi>&mu;&lambda;</mi><mrow><mo>(</mo><msub><mo>&dtri;</mo><mn>1</mn></msub><msubsup><mi>A</mi><mi>ij</mi><mn>1</mn></msubsup><mo>+</mo><msub><mo>&dtri;</mo><mn>2</mn></msub><msubsup><mi>A</mi><mi>ij</mi><mn>2</mn></msubsup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000613066760000028.GIF" wi="832" he="95" /></maths>步骤66、用共轭梯度法求解以下的线性算子方程,Θ<sup>*</sup>(Θ(I<sub>H</sub>))+μλΥ<sup>*</sup>(Υ(I<sub>H</sub>))=Eq_r,求出的解即为<img file="FDA00006130667600000310.GIF" wi="139" he="84" />Θ,Θ<sup>*</sup>,Υ,Υ<sup>*</sup>代表四种线性算子;步骤七、更新<img file="FDA0000613066760000031.GIF" wi="64" he="85" />的值;步骤八、判别是否收敛:计算<img file="FDA0000613066760000032.GIF" wi="238" he="91" />变成一维向量后的2范数值,若判断这个值小于等于tol或者t≥T,迭代停止并获得高分辨率图像<img file="FDA0000613066760000033.GIF" wi="108" he="91" />否则迭代次数t增加1且返回步骤五。
地址 150000 黑龙江省哈尔滨市南岗区西大直街92号