1.å¾åå¤çç¿»è¯
å¾åå¤çç¿»è¯
é对ç»åºçå¾åï¼moon.tifï¼æè èªè¡éæ©çç°åº¦å¾åï¼
1ï¼ï¼ç»å¾ååå«æ·»å é«æ¯åªå£°åæ¤çåªå£°ã
2ï¼ï¼å¯¹å åªå¾åçä¸å¿åºåï¼*ï¼è¿è¡ç©ºé´æ»¤æ³¢ï¼å°½æ大å¯è½æ¶é¤åªå£°ã
3ï¼ï¼å¯¹å åªå¾åçä¸å¿åºåï¼*ï¼è¿è¡é¢å滤波ï¼å°½æ大å¯è½æ¶é¤åªå£°ã
ææ¯æè¿°ï¼
对å¾åè¿è¡å é«æ¯åªå£°åæ¤çåªå£°å¤çï¼å¯¹å å«é«æ¯åªå£°åæ¤çåªå£°çå¾çè¿è¡å¤çï¼ä½¿å¤çåçå¾åæ¯åå¾åæ¸ æ°ã
æéåºç¨å°çææ¯ï¼å æ¬ï¼
a>对å¾çå åªå£°
b>éåä¸å¿åºå
c>对éåçåºåè¿è¡éåªå¤ç
d>éæ°çæå¾åã
e>æé é«æ¯ä½é滤波å¨æ¶ç¨å°äºé«æ¯å ¬å¼ï¼exp(-(u^2+v^2)/(2*(D0^2)))
ç»æ讨论ï¼
以ä¸æ¯å¯¹ä¸åç滤波å¨é对ä¸ååªç¹å¤ççæµè¯ç»æã
åèä¸é¢çè¯éªç»æï¼è¿è¡è®¨è®ºï¼
A()æ¯ä½¿ç¨fspecial('gaussianâ)å¹³æ»ç©ºå滤波å¤çææï¼ä¸è¿ææä¸æ¯æ好ï¼ç±äºæ大ç¨åº¦éåªï¼å¯¼è´å¾å模ç³ï¼
A()æ¯é¢å滤波å¤çåçç»æï¼å 为使ç¨äºé«æ¯ä½é滤波å¨ï¼æ以ä¼ææ¡é»çº¿ï¼å¤çä¸è¬ï¼
A()æ¯ä½¿ç¨medfilt2ï¼ï¼ç©ºåä¸å¼æ»¤æ³¢å¨ææï¼éåªææå¾ä¸éï¼å¾åä¹å¾æ¸ æ°ï¼
A() æ¯é¢å滤波å¤çåçç»æï¼åA()ï¼å 为使ç¨äºé«æ¯ä½é滤波å¨ï¼æ以ä¼ææ¡é»çº¿ï¼ææä¸è¬ã
è¯éªç»æ:
é«æ¯å åªåæ¤çå åªå¤çå¾åå«å¦ä¸:
å¦å¾:
å¾(A):åå¾
å¾(A):é«æ¯å åª
å¾(A):对å¾(A)è¿è¡ä¸å¿*空å滤波
å¾(A):对å¾(A)è¿è¡ä¸å¿*é¢å滤波
ï¼A0ï¼ ï¼Aï¼
ï¼Aï¼ (A)
å¦å¾:
å¾(A):åå¾
å¾(A):æ¤çå åª
å¾(A):对å¾(A)è¿è¡ä¸å¿*空å滤波
å¾(A):对å¾(A)è¿è¡ä¸å¿*é¢å滤波
(A) (A)
(A) (A)
éå½ï¼
æºä»£ç 1 ï¼å¯¹é«æ¯åªå£°çå¤ç
f=imread('moon.tif');
J=imnoise(f,源码源码没有git'gaussian',0.,0.);%æ·»å é«æ¯åªå£°
%空å滤波
r=[ ];
c=[ ];
BW=roipoly(J,c,r);
h=fspecial('gaussian',[5 5]);
A=roifilt2(J,h,BW);
figure,imshow(A);
%é¢å滤波
f1=imcrop(fn,[ ]);
%æªå*大å°ççªå£å¾ç
f2=[ ];
%建ç«ä¸ä¸ªæ°çå¾å
f2=uint8(f2);
f2=padarray(f2,[ ],);
%å°æ°å»ºå¾åæå±å°*çé»è²å¾ç
f2=padarray(f2,[ ],0);
%å¨æ°å»ºå¾çå¨å´æ·»å ç½è²ä½¿ä¹å¤§å°ä¸ºmoonå¾çç大å°
fn=fn-f2;
%å¾å°ä¸å¿*åºåå 为é»è²çmoonå¾ç
PQ=paddedsize(size(f1));
[u,v]=dftuv(PQ(1),PQ(2));
D0=0.2*PQ(2);
hh=exp(-(u.^2+v.^2)/(2*(D0^2)));
%æé é«æ¯ä½é滤波å¨
h1=dftfilt(f1,hh);
A=padarray(h1,[ ],0);
%å°h1æå±å°moonå¾ç大å°
A=uint8(A)+fn;
%å¾å°ä¸å¿*åºåå¤çåçmoonå¾ç
figure,imshow(A);
æºä»£ç 2 ï¼å¯¹æ¤çåªå£°çå¤ç
f=imread('moon.tif');
fn=imnoise(f,'salt & pepper',0.);
%æ·»å æ¤çåªå£°
%空å滤波
f1=imcrop(fn,[ ]);
%æªå*大å°ççªå£å¾ç
f2=[ ];
%建ç«ä¸ä¸ªæ°çå¾å
f2=uint8(f2);
f2=padarray(f2,[ ],);
%å°æ°å»ºå¾åæå±å°*çé»è²å¾ç
f2=padarray(f2,[ ],0);
%å¨æ°å»ºå¾çå¨å´æ·»å ç½è²ä½¿ä¹å¤§å°ä¸ºmoonå¾çç大å°
fn=fn-f2;
%å¾å°ä¸å¿*åºåå 为é»è²çmoonå¾ç
h=medfilt2(f1,'symmetric');
%对f1è¿è¡ä¸å¼å¤ç
A=padarray(h,[ ],0);
%å°hæå±å°moonå¾ç大å°
A=A+fn;
%å¾å°ä¸å¿*åºåå¤çåçmoonå¾ç
figure,imshow(A);
%é¢å滤波
f1=imcrop(fn,[ ]);
%æªå*大å°ççªå£å¾ç
f2=[ ];
%建ç«ä¸ä¸ªæ°çå¾å
f2=uint8(f2);
f2=padarray(f2,[ ],);
%å°æ°å»ºå¾åæå±å°*çé»è²å¾ç
f2=padarray(f2,[ ],0);
%å¨æ°å»ºå¾çå¨å´æ·»å ç½è²ä½¿ä¹å¤§å°ä¸ºmoonå¾çç大å°
fn=fn-f2;
%å¾å°ä¸å¿*åºåå 为é»è²çmoonå¾ç
PQ=paddedsize(size(f1));
[u,v]=dftuv(PQ(1),PQ(2));
D0=0.1*PQ(2);
hh=exp(-(u.^2+v.^2)/(2*(D0^2)));%æé é«æ¯ä½é滤波å¨
h1=dftfilt(f1,hh);
A=padarray(h1,[ ],0);
%å°h1æå±å°moonå¾ç大å°
A=uint8(A)+fn;
%å¾å°ä¸å¿*åºåå¤çåçmoonå¾ç
figure,imshow(A);