1.matlabå¾åå¢å¼º
2.å¾åå¤çç¿»è¯
3.matlab中调用高斯滤波器,源码出现这个错误怎么办
matlabå¾åå¢å¼º
ç´æ¹åè¡¡ï¼å¹³æ»ï¼éåA=imread('.jpg');
B=rgb2gray(A);
figure,源码cef源码编译 linuxsubplot(2,2,1),imshow(B);
subplot(2,2,2),imhist(B);
A1=imadjust(B,[0.2 0.5],[]);
subplot(2,2,3),imshow(A1);
subplot(2,2,4),imhist(A1);
C=imnoise(B,'salt & pepper');
h1=[0.1 0.1 0.1;0.1 0.2 0.1;0.1 0.1 0.1];
h2=1/4.*[1 2 1;2 4 2;1 2 1];
C1=filter2(h1,C);
C2=filter2(h2,C);
C3=medfilt2(C);
figure,subplot(2,2,1),imshow(C);
subplot(2,2,2),imshow(C1,[]);
subplot(2,2,3),imshow(C2,[]);
subplot(2,2,4),imshow(C3);
h=[0 -1 0;-1 4 -1;0 -1 0];
D1=imfilter(B,h);
d2=fspecial('sobel');
D2=imfilter(B,d2);
D3=edge(B,'roberts',0.1);
figure,subplot(2,2,1),imshow(B);
subplot(2,2,2),imshow(D1);
subplot(2,2,3),imshow(D2,[]);
subplot(2,2,4),imshow(D3);
å¾åå¤çç¿»è¯
é对ç»åºçå¾åï¼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,'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);
matlab中调用高斯滤波器,出现这个错误怎么办
matlab里没有自带lpfilter()函数的源码iiop源码,你可以先function一个lpfilter,源码loki源码再调用。源码owllook源码
高斯低通滤波,源码火狐+源码你可以考虑用函数
H=fspecial('gaussian',源码n,sigma)
C=filter2(H,img);