超分辨率重建鄰域嵌入部分代碼Super-Resolution Through Neighbor Embedding
%NE算法
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對應的高分辨率圖像塊的特徵向量