在超分辨率图像重建中,有一个很重要的环节就是精确建立HR图像到LR的图像退化模型。简单来说,退化模型就是对CCD成像系统的数学描述,包括:降采样矩阵、变形矩阵、模糊矩阵以及均值为零的加性高斯白噪声;函数形式为:Y=CSZ+N,其中,Y是LR图像序列,Z是HR图像,N是噪声,C是位移矩阵,而S就是降采样矩阵。A=CS,A称为运动补偿矩阵。
在我阅读过的相关文献里,都提到了所谓的降采样矩阵,并且指出该矩阵的维是(M*N) X
(q*q*M*N)。其中,M、N是LR图像的大小,q是降采样系数;例如,如果分辨率降低一半,那么q=2。根据数学表达式,我曾经考虑A与Z之间的关系是卷积运算,但是我动手做实验之后,彻底否决了卷积的可能性。
本来,降采样矩阵并不是什么很难理解的问题。但是,由于我的注意力完全集中于论文,因此思路被严重限制了。在队友的提示下,昨天我在旧书店待了一下午,最后终于在一本机械工业出版社出版的《数字图像处理》中看到了关于图像采样的比较详细的论述。
以下就是我在matlab平台上实现的64X64到32X32的降采样矩阵,本来是想实现256X256到64X64的降采样矩阵,但是很无奈,matlab提示out
of memory。
f=imread(‘lena.bmp');
[m]=size(f);
k=0;
for i=1:m(1)
for j=1:m(2)
k=k+1;
ff(k)=f(i,j);
end
end
ff=ff';
ff=double(ff);
clear i j k
s=zeros(32*32,64*64);
for i=1:1024
s(i,floor((i-1)/32)*128+2*(i-floor((i-1)/32)*32)-1)=1;
s(i,floor((i-1)/32)*128+2*(i-floor((i-1)/32)*32))=1;
s(i,floor((i-1)/32)*128+2*(i-floor((i-1)/32)*32)-1+64)=1;
s(i,floor((i-1)/32)*128+2*(i-floor((i-1)/32)*32)+64)=1;
end
clear i j
gg=s*ff;
for i=1:32
for j=1:32
g(i,j)=gg((i-1)*32+j,:);
end
end
g=g./4;
g=im2uint8(mat2gray(g));
subplot(211),imshow(f)
subplot(212),imshow(g)