>> f2=adpmedian (g, 7); >> figure,imshow(f2);
3.2.6 模糊噪声图像的建模。如图所示,(a)原图像;(b)使用参数len=7和theta=-45的函数fspecial模糊的图像;(c)噪声图像;(d)图(b)和图(c)之和。请写出实验步骤。
>> ff=checkerboard(8); >> figure,imshow(ff);
>> psf= fspecial('motion', 7,45); >> gb=imfilter(ff, psf, 'circular'); >> figure,imshow(gb); >> psf psf =
0 0 0 0 0 0.0145 0
0 0 0 0 0.0376 0.1283 0.0145
0 0 0 0.0376 0.1283 0.0376 0
0 0 0.0376 0.1283 0.0376 0 0
0 0.0376 0.1283 0.0376 0 0 0
0.0145 0.1283 0.0376 0 0 0 0
0 0.0145 0 0 0 0 0
>> noise=imnoise(zeros(size(ff)), 'gaussian', 0, 0.001); >> figure,imshow(noise); >> g= gb+ noise; >> figure,imshow(g)
>> figure,imshow(pixeldup(ff, 8), [ ])
3.2.7 使用函数deconvwnr复原模糊噪声图像。如图所示,(a)模糊的噪声图像;(b)逆滤波的结果;(c)使用常数比率的维纳滤波结果;(d)使用自有关函数的维纳滤波的结果。请写出实验步骤。
>> ff=checkerboard(8);
>> psf= fspecial('motion', 7,45); >> gb=imfilter(ff, psf, 'circular'); >> figure,imshow(gb);
>> noise=imnoise(zeros(size(ff)), 'gaussian', 0, 0.001); >> figure,imshow(noise); >> g= gb+ noise;
>> fr1= deconvwnr(g, psf); >> figure,imshow(fr1) >> sn= abs(fft2(noise)).^2;
>> na= sum(sn(:))/prod(size(noise));
>> sf=abs(fft2(ff)).^2;
>> fa=sum(sf(:))/prod(size(ff)); >> r=na/fa;
>> fr2=deconvwnr(g,psf,r); >> figure,imshow(fr2)
>> ncore=fftshift(real(ifft2(sn))); >> icorr=fftshift(real(ifft2(sf)));
>> fr3=deconvwnr(g, psf, ncore, icorr); >> figure,imshow(fr3)
3.2.8 使用函数deconvreg复原模糊噪声图像(3.2.6的(d)图)。如图所示,(a)使用参量NOISEPOWER等于4的正则滤波器复原的图中的图像;(b)使用参量NOISEPOWER为0.4和RANGE为[1e-7 1e7]的正则滤波器复原的同一副图像。请写出实验步骤。
>> fr=deconvreg(g,psf,4); >> figure,imshow(fr);
>> frr=deconvreg(g,psf,0.4,[1e-7 1e7]); >> figure,imshow(frr);
3.2.9 使用函数deconvlucy复原模糊噪声图像。如图所示,(a)原图像;(b)由高斯模糊污染和模糊的图像;(c)到(f)是对图像(b)用L-R算法分不迭代5次、10次、20次和100次后的复原图像。请写出实验步骤。
>> figure,imshow(pixeldup(f,8)); >> psf=fspecial('gaussian', 7, 10); >> sd=0.01;
>> g=imnoise(imfilter(f, psf),'gaussian',0 ,sd^2); >> figure,imshow(g); >> dampar=10*sd;
>> lim=ceil(size(psf,1)/2); >> weight=zeros(size(g));
>> weight(lim+1:end-lim, lim+1:end-lim)=1; >> figure,imshow(weight); >> numit=5;
>> f5=deconvlucy(g,psf,numit,dampar,weight); >> figure,imshow(pixeldup(f5,8)); >> numit=10;
>> f5=deconvlucy(g,psf,numit,dampar,weight); >> figure,imshow(pixeldup(f5,8)); >> numit=20;
>> f5=deconvlucy(g,psf,numit,dampar,weight); >> figure,imshow(pixeldup(f5,8)); >> numit=100;
>> f5=deconvlucy(g,psf,numit,dampar,weight); >> figure,imshow(pixeldup(f5,8));
3.2.10 使用函数deconvblind估量PSF(下图a确实是生成上图图b所示退化图像的PSF)。如图所示,(a)原始PSF;(b)到(d)在函数deconvblind中分不使用5次、10次和20次迭代估量的PSF。请写出实验步骤。
>> psf=fspecial('gaussian',7,10);
>> figure,imshow(pixeldup(psf,73), [ ]); >> sd=0.01;
>> g=imnoise(imfilter(f, psf),'gaussian',0, sd^2); >> initpsf=ones(size(psf)); >> numit=5;
>> [fr, psfe]=deconvblind(g,initpsf,numit,dampar,weight); >> figure,imshow(pixeldup(psfe,73), [ ]); >> numit=10;
>> [fr, psfe]=deconvblind(g,initpsf,numit,dampar,weight); >> figure,imshow(pixeldup(psfe,73), [ ]); >> numit=20;
>> [fr, psfe]=deconvblind(g,initpsf,numit,dampar,weight); >> figure,imshow(pixeldup(psfe,73), [ ]);
3.2.11 使用函数visformfwd的直观仿射变换。如图所示,使用栅格的直观仿射变换:(a)栅格1;(b)使用tform变换的栅格1;(c)栅格2;(d)使用tform2变换的栅格2;(e)栅格3;(f)使用tform3不换的栅格3。请写出实验步骤。
>> t1=[3 0 0; 0 2 0; 0 0 1];