www.gusucode.com > 实现图像的同态滤波处理,matlab实现同台滤波的源码 > 实现图像的同态滤波处理,matlab实现同台滤波的源码/同态滤波器/homofil.m
function homofil(im,d,r,c,n) %巴特沃思高通滤波器(BHPF) A=zeros(r,c); for i=1:r for j=1:c A(i,j)=(((i-r/2).^2+(j-c/2).^2)).^(.5); H(i,j)=1/(1+((d/A(i,j))^(2*n))); end end %设置参数高频和低频值 alphaL=0.0999; alphaH=1.01; H=((alphaH-alphaL).*H)+alphaL; H=1-H; %对图像I取对数 im_l=log2(1+im); %对对数图像作傅里叶变换 im_f=fft2(im_l); %对傅里叶变换后的图像进行巴特沃思滤波 im_nf=H.*im_f; %傅里叶逆变换 im_n=abs(ifft2(im_nf)); %取指数 im_e=exp(im_n); subplot(122); imshow((im_e),[])