本文解决了从单个低分辨率输入图像生成超分辨率 (SR) 图像的问题。我们从压缩感知的角度来解决这个问题。低分辨率图像被视为高分辨率图像的下采样版本,假设其补丁相对于原型信号原子的过完备字典具有稀疏表示。压缩感知的原理保证了在温和的条件下,稀疏表示可以正确地从下采样信号中恢复出来。我们将证明稀疏性的有效性作为规范否则不适定的超分辨率问题的先验。我们进一步表明,从与输入图像具有相似统计性质的训练图像中随机选择的一小组原始补丁通常可以作为一个好的字典,因为计算的表示是稀疏的,而恢复的高分辨率图像具有竞争力甚至质量优于其他 SR 方法生成的图像。
function [HP, LP] = sample_patches(im, patch_size, patch_num, upscale)
if size(im, 3) == 3,
%判断是否为灰度图像
hIm = rgb2gray(im);
else
hIm = im;
end
% generate low resolution counter parts
lIm = imresize(hIm, 1/upscale, 'bicubic');
lIm = imresize(lIm, size(hIm), 'bicubic');
[nrow, ncol] = size(hIm);
%[行长度,列长度]
x = randperm(nrow-2*patch_size-1) + patch_size;
y = randperm(ncol-2*patch_size-1) + patch_size;
%randperm:打乱一列序号