Вы находитесь на странице: 1из 5

Digital Image Processing HW4

1. ans =

12 10 7 10
11 10 5 5
10 7 4 4
11 7 4 4

2. a. Average: >>c=imread('cameraman.tif');
>>csp=imnoise(c,'salt & pepper',0.05);
>>av=fspecial('average',[3,3]);
>>imshow(filter2(av,csp)/255),figure,imshow(csp)

b. Median: >> imshow(medfilt2(csp))

c. The outlier method: >> o=[0.125 0.125 0.125;0.125 0


0.125;0.125 0.125 0.125];
>> ccsp=im2double(csp);
>> ccspr=filter2(o,ccsp);
>> r=abs(ccsp-ccspr)-0.3>0;
>> imshow(im2uint8(r.*ccspr+(1-r).*ccsp))
49385002 資工三陳俊志
I think median filtering gives the best result.

3. Average: >> cg=imnoise(c,'gaussian');


>> imshow(filter2(av,cg)/255)
>> av5=fspecial('average',[5,5]);
>> imshow(filter2(av5,cg)/255)

3x3 5x5
Wiener: >> imshow(wiener2(cg)),figure,imshow(wiener2(cg,[5,5]))

3x3 5x5
49385002 資工三陳俊志
4. >> cf=fftshift(fft2(c));
>> lb=lbutter(c,15,2);
>> cfb=cf.*lb;
>> cfba=abs(ifft2(cfb));
>> cfba=uint8(255*mat2gray(cfba));
>>d=0.01;
>> lb=lbutter(c,15,2);lb(find(lb<d))=1;
>> cr=fftshift(fft2(cfba))./lb;
>> cra=abs(ifft2(cr));
>> imshow(mat2gray(cra))

d=0.01 0.005

0.002 0.001

5. >> m=fspecial('motion',10,0);
>> cm=imfilter(c,m);
>> m2=zeros(256,256);
>> m2(1,1:11)=m;
49385002 資工三陳俊志
>> mf=fft2(m2);
>> d=0.02;
>> mf=fft2(m2);mf(find(abs(mf)<d))=1;
>> cmi=ifft2(fft2(cm)./mf);
>> imshow(mat2gray(abs(cmi))*2)

6. >> K=0.01;
>> crf=fftshift(fft2(cfba));
>> lb=lbutter(c,15,2);w1=crf.*(abs(lb).^2./(abs(lb).^2+K)./lb);
>> w1a=abs(ifft2(w1));
>> imshow(mat2gray(w1a))

K=0.01 0.001

49385002 資工三陳俊志
0.0001 0.00001

49385002 資工三陳俊志

Вам также может понравиться