超分辨率重建邻域嵌入部分代码

超分辨率重建邻域嵌入部分代码Super-Resolution Through Neighbor Embedding

%NE算法

超分辨率重建邻域嵌入部分代码_第1张图片
超分辨率重建邻域嵌入部分代码_第2张图片

function [YT,U,neighborhood] = naneighbor(XT,XS,YS,K)
[~,T] = size(XT);
[M,~] = size(YS);
neighbors\n',K);
neighborhood = zeros(K,T);
for i = 1:T
    temp = XT(:,i);
    distance = dist2(temp',XS');
    [~,index] = sort(distance');
    neighborhood(:,i) = index(2:(K+1));
end
tol=1e-4; % regularlizer in case constrained fits are ill conditioned
U = zeros(K,T);
for ii=1:T
    z = XS(:,neighborhood(:,ii))-repmat(XT(:,ii),1,K); % shift ith pt to origin
    C = z'*z;                                        % local covariance
    if trace(C)==0
        C = C + eye(K,K)*tol;                   % regularlization
    else
        C = C + eye(K,K)*tol*trace(C);
    end
    U(:,ii) = C\ones(K,1);                           % solve C*u=1
    U(:,ii) = U(:,ii)/sum(U(:,ii));                  % enforce sum(u)=1
end;
YT = zeros(M,T);
for ii = 1:T
    YT(:,ii) = YS(:,neighborhood(:,ii))*U(:,ii);
end

输入XT待重建低分辨率图像特征矩阵,每一列对应一个图像块的特征向量

XS训练集中的低分辨率图像块特征矩阵;YS是对应的训练集高分辨率图像块特征向量

输出YT,XT对应的高分辨率图像块的特征向量


你可能感兴趣的:(代码解读)