1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【图像重建】基于matlab L1范数自适应双边总变分超分辨率图像序列重建【含Matlab源码

【图像重建】基于matlab L1范数自适应双边总变分超分辨率图像序列重建【含Matlab源码

时间:2023-03-02 17:06:27

相关推荐

【图像重建】基于matlab L1范数自适应双边总变分超分辨率图像序列重建【含Matlab源码

一、正则化图像超分辨重建简介

1 超分辨率重建数学模型

设有N帧低分辨率观测图像yk(k=1,2,…,N),图像大小为M×M,将每帧低分辨率(LR)图像yk按列方向排成向量的形式,记作Yk,大小为[M2×1];x为原始高分辨率图像(HR),大小为rM×rM,r为分辨率增大系数,同样按列方向排列成向量的形式,记为X,大小为r2M2×1。图像的降质模型[2]如图1所示,F表示图像的运动矩阵,大小为r2M2×r2M2;H表示成像设备的PSF,大小为r2M2×r2M2;D表示高分辨率到低分辨率的欠采样,大小为M2×r2M2;V表示成像系统引入的噪声,大小为M2×1。

图1 系统成像模型

因此图像的成像模型可以表示为

Yk=DkHkFkX+Vk;k=1,2,…,N (1)

式(1)中下标k表示第k帧图像。成像设备和成像条件相同时,就有∀k,Hk=H,Dk=D。因此式(1)变为

Yk=DHFkX+Vk;k=1,2,…,N (2)

式(2)便是图像超分辨重建模型,即在已知Yk、D、H、Fk、Vk的情况下,如何估算出原始高分辨率图像X。在没有约束条件或者其他有关图像先验知识的限制下,式(2)的超分辨率重建问题是一个典型的反问题。

2 超分辨率图像重建

2.1正则化原理

一般可以采用无约束的最优化方法来解决式(2)这类问题。然而,用这类方法求得的最优解通常并不是唯一的,或者说是不稳定的。为了获得稳定解,通常还要对最优化方法附加某些约束条件,这种解决不适定问题的有约束最优化问题,就称为正则化问题。正则化函数方程如下:

式(3)中:λ为正则化系数,衡量数据项和正则项之间的相对贡献量。当p=1时,(3)式为具有L1范数的正则化问题;当p=2时,(3)式为具有L2范数的正则化问题。L1范数具有提高算法的运算速度等优点[3],所以论文采用L1范数。J为正则化函数,比如Tikhonov和GaussMarkov类型的正则化函数,但这些类型的函数会致使图像的边缘和细节被过度平滑。相反基于总变分的(TV)的正则化函数可以很好的保持图像的边缘和细节信息[4]。TV函数如下

式(4)中Ω表示图像空间,β为足够小的正数。因此式(4)离散化后为

利用变分方法求解式(6),最小化问题转化为求解Euler-Lagrange方程:

2.2 算法流程

根据论文2.1部分阐述,现总结论文算法如下:

(1)初始化迭代次数n=1,步长为1,最大迭代次数为20,利用插值的方法确定初始值X0;

(2)根据式(9)求得

(3)根据式(9)迭代更新,Xn+1=Xn-αGn;

(4)迭代次数n=n+1,若n<20,转到(2),否则转到(5);

(5)结束程序;Xn+1即为重建的高分辨率图像

二、部分源代码

%基于L1范数的自适应双边总变分超分辨率图像序列重建

clear

clc

%% 载入数据

%load text;

%LR = double(text);

%load disk;

%LR = double(disk);

%load eia_lr;

%LR = double(eia_lr);

load text4;

LR = double(text4);

addpath([pwd ‘\LKOFlow’]); %增加搜索路径pwd表示当前路径,后面部分表示当前路径下的文件夹

%% 参数初始化

nuL1BTV = .005;

resFactor = 2; % 采样因子

maxiter = 30;

%% 图像配准

D = RegisterImageSeq( LR );

D = round( D .* resFactor );

D = mod( D, resFactor ) + resFactor;

Dr = floor( D / resFactor );

%% 样条插值放大

[X,Y] = meshgrid( 1 : size( LR, 2 ), 1 : size( LR, 1 ) );

for i = 1 : size( LR, 3 )

LR( :, :, i ) = interp2( X + Dr( i, 1 ), Y + Dr( i, 2 ), LR( :, :, i ), X, Y, ‘*spline’ );

end

[ X, Y ] = meshgrid( 0 : resFactor : ( size( LR, 2 ) - 1 ) * resFactor, …

0 : resFactor : (size( LR, 1 )- 1 ) * resFactor );

[ XI, YI ] = meshgrid( resFactor - 1 : ( size( LR, 2 ) ) * resFactor,…

resFactor - 1 : ( size( LR, 1 ) ) * resFactor );

HR = interp2( X, Y, LR( :, :, 1 ), XI, YI, ‘*spline’ ); % 样条插值得到初始高分辨率图像

%figure(‘name’, ‘插值算法放大结果’, ‘NumberTitle’, ‘off’)

%imshow( uint8( HR ) )

%% L1超分辨率重建

alpha1 =0.5;

I1 = L1ABTVSR1( LR( 2 : end, 2 : end, : ), D, HR, alpha1, resFactor, maxiter,nuL1BTV); % 超分辨率重建图像

figure(‘name’, ‘L1双边总变分算法重建结果’, ‘NumberTitle’, ‘off’)

imshow( uint8( I1 ) )

I = L1ABTVSR( LR( 2 : end, 2 : end, : ), D, HR,resFactor, maxiter); % 超分辨率重建图像

figure(‘name’, ‘L1自适应双边总变分算法重建结果’, ‘NumberTitle’, ‘off’)

imshow( uint8( I ) )

三、运行结果

四、matlab版本及参考文献

1 matlab版本

a

2 参考文献

[1]刘志文,潘晓露,李一民.L1范数的总变分正则化超分辨率图像重建[J].微处理机. ,33(03)

3 备注

简介此部分摘自互联网,仅供参考,若侵权,联系删除

【图像重建】基于matlab L1范数自适应双边总变分超分辨率图像序列重建【含Matlab源码 2209期】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。