您好,欢迎访问三七文档
拉普拉斯算子的应用主要程序:1:functionPQ=paddedsize(AB,CD,PARAM)ifnargin==1PQ=2*AB;elseifnargin==2&~ischar(CD)PQ=AB+CD-1;PQ=2*ceil(PQ/2);elseifnargin==2m=max(AB);P=2^nextpow2(2*m);PQ=[P,P];elseifnargin==3m=max([ABCD]);P=2^nextpow2(2*m);PQ=[p,p];elseerror('wrongnumberofinputs')end作用为提取填充参数。2:functiong=dftfilt(f,H)F=fft2(f,size(H,1),size(H,2));g=real(ifft2(H.*F));g=g(1:size(f,1),1:size(f,2));此函数为滤波函数3:function[u,v]=dftuv(M,N)u=0:(M-1);v=0:(N-1);idx=find(uM/2);u(idx)=u(idx)-M;idy=find(vN/2);v(idy)=v(idy)-N;[v,u]=meshgrid(v,u);此函数的作用为计算任意点到指定点的距离。4:function[H,D]=lpfilter(type,M,N,D0,n)[u,v]=dftuv(M,N)D=sqrt(u.^2+v.^2);switchtypecase'ideal'H=double(D=D0);case'btw'ifnargin==4n=1;endH=1./(1+(D./D0).^(2*n));case'gaussian'H=exp(-(D.^2)./(2*(D0^2)));otherwiseerror('unkownfiltertype.')end此函数为低通滤波器的函数5:functionH=hpfilter(type,M,N,D0,n)ifnargin==4n=1;endHlp=lpfilter(type,M,N,D0,n);H=1-Hlp;此函数为高通滤波器的函数;主要过程:首先输入f=imread('D:\照片\收藏\1.gif')将图像放进matlab环境中,然后使用p_down文件对图像进行低通处理。P_down文件:PQ=paddedsize(size(f));D0=0.05*PQ(1);[H,D]=lpfilter('ideal',PQ(1),PQ(2),D0);g=dftfilt(f,H);figure,imshow(g,[])再使用p_high文件对图像进行高通处理P_high文件:PQ=paddedsize(size(f));D0=0.05*PQ(1);H=hpfilter('ideal',PQ(1),PQ(2),D0);g=dftfilt(f,H);figure,imshow(g,[]);处理的图像显示的结果为:第一个图为原图像。第二个图为低通滤波的结果图像。第三个图为高通滤波的结果图像。制作人:涂展鹏电子07级02班200707113162010年3月20日
本文标题:拉普拉斯算子的应用
链接地址:https://www.777doc.com/doc-2449909 .html