www.pudn.com > Lee.rar > leeSR.m, change:2011-03-19,size:1340b


%% Matlab中文论坛所有资料全部免费下载,包括视频、附件、程序等 
% 论坛得到了南京理工大学,上海大学,重庆大学等众多大学老师和学生的支持, 
% 已经成为他们教课老师的推荐学习园地!同时获得了中科院众多研究人员的支持! 
% 更多学习资料请访问论坛主页:     www.iLoveMatlab.cn 
% Matlab中文论坛:杜绝浮躁、追求专业 
 
 
function I = leeSR( LR, Xn, S, M, B, C, p, e ) 
%% 函数功能:lee算法重建 
% 输入参数: 
% LR : 低分辨率图像序列 
% Zn: 当前的模拟高分辨率图像 
% M: 配准参数 
% B:点扩散函数 
% S: 采样因子 
% C: Laplacian高通滤波算子 
% p: 图像序列帧数 
% e: 迭代步长 
% 输出参数: 
% I: 高分辨率图像 
 
%% 参数初始化 
maxiter = 10;      % 最大迭代次数 
iter = 1;          % 初始化迭代次数 
 
%% 迭代重建 
h = waitbar( 0, '超分辨率重建中,请稍等...', 'name', '超分辨率重建' ); 
while iter < maxiter 
    waitbar( iter / maxiter ); 
     
    G1 = leeWTWX( LR, Xn, M, B, S );          % 计算 w'wx  
    G2 = leeWTY( LR, Xn, M, B, S, p );        % 计算w'y 
    G3 = leeCTCX( Xn, C );                    % 计算c'cx 
    lambda = leeLambdaFun( LR, Xn, M, S, B, C );   % 计算lambda 
     
    temp = zeros( size( G1 ) ); 
    for i = 1:size(LR, 3) 
        temp( :, :, i ) = lambda( i ) * ( G1( :, :, i ) - G2( :, :, i ) ) ; 
    end 
    Xn = Xn - e * ( sum( temp, 3 ) + G3 ); 
    iter = iter + 1; 
end 
% 重建结束 
 
I = Xn;   % 重建结果 
close(h);