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

在这里插入图片描述

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

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版本
2014a

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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab领域

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值