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),[])