数字图像处理学习笔记7:频率域滤波3(同态滤波)


前言


一、同态滤波原理

1.处理原理

(1)认为图像f(x,y)由两部分组成:照射分量i(x,y),反射分量r(x,y):
f ( x , y ) = i ( x , y ) ∗ r ( x , y ) f(x,y)=i(x,y)*r(x,y) f(x,y)=i(x,y)r(x,y)
(2)但上式不能直接用于对两个分量在频率域进行处理,因为乘积的傅里叶变换不等于变换的乘积,因此,定义:
z ( x , y ) = l n f ( x , y ) = l n i ( x , y ) + l n r ( x , y ) z(x,y)=lnf(x,y)=lni(x,y)+lnr(x,y) z(x,y)=lnf(x,y)=lni(x,y)+lnr(x,y)
(3)经过上面变换后可以进行傅里叶变换,有:
Z ( u , v ) = F i ( u , v ) + F r ( u , v ) Z(u,v)=F_i(u,v)+F_r(u,v) Z(u,v)=Fi(u,v)+Fr(u,v)
(4)然后可以设置一个滤波器H(u,v),对Z(u,v)进行滤波:
S ( u , v ) = H ( u , v ) ∗ Z ( u , v ) = H ( u , v ) ∗ F i ( u , v ) + H ( u , v ) ∗ F r ( u , v ) S(u,v)=H(u,v)*Z(u,v)=H(u,v)*F_i(u,v)+H(u,v)*F_r(u,v) S(u,v)=H(u,v)Z(u,v)=H(u,v)Fi(u,v)+H(u,v)Fr(u,v)
(5)对S(u,v)使用傅里叶逆变换得到s(x,y),则滤波后的图像g(x,y):
g ( x , y ) = e s ( x , y ) g(x,y)=e^{s(x,y)} g(x,y)=es(x,y)


在图像中,认为低频成分与照射分量相相联系,高频成分与反射分量相联系。同态滤波就是设置一个滤波器H(x,y),使用不同的可控方法来影响低频分量和高频分量对图像的影响。


二、同态滤波器模板及MATLAB代码

1.同态滤波器

(1)高斯高通滤波的函数如下:
H ( u , v ) = 1 − e − D 2 ( u , v ) / 2 D 0 2 H(u,v)=1-e^{-D^2(u,v)/2D_0^2} H(u,v)=1eD2(u,v)/2D02



高斯高通滤波器剖面图如上,使低频分量处为0,高频分量处保持不变


(2)以高斯高通滤波器为模板改造的同态滤波器

H ( u , v ) = ( γ H − γ L ) [ 1 − e − C [ D 2 ( u , v ) / 2 D 0 2 ] ] + γ L H(u,v)=(γ_H-γ_L)[1-e^{-C[D^2(u,v)/2D_0^2]}]+γ_L H(u,v)=(γHγL)[1eC[D2(u,v)/2D02]]+γL


γ H > 1 γ_H>1 γH>1, γ L < 1 γ_L<1 γL<1时,对应剖面图为:

在这里插入图片描述
可以看出这个滤波器减少了低频分量的影响,增加了高频分量的影响。


2.MATLAB代码

代码如下:

im1 = imread("D:\work\c++\Imageprocessing1\\1043.jpg");
im1=rgb2gray(im1);
figure,imshow(im1)
I=double(im1);
[M,N]=size(I);
rL=0.25; rH=2; %参数可调
c=2; d0=10;
I=log(I+1);%取对数
FI=fft2(I);%傅里叶变换
n1=floor(M/2);
n2=floor(N/2);
for i=1:M
    for j=1:N
        D(i,j)=((i-n1).^2+(j-n2).^2);
        H(i,j)=(rH-rL).*(exp(c*(-D(i,j)./(d0^2))))+rL;%高斯同态滤波
    end
end
I2=ifft2(H.*FI);%傅里叶逆变换
I2=real(exp(I2));
figure,imshow(I2,[]);title('同态滤波增强后');

结果( γ H = 2 γ_H=2 γH=2, γ L = 0.25 γ_L=0.25 γL=0.25):
在这里插入图片描述

三、改变参数

上面的同态滤波用于增强图像,若当 γ H < 1 γ_H<1 γH<1, γ L > 1 γ_L>1 γL>1时,结果如何呢:

设置 γ H = 0.5 γ_H=0.5 γH=0.5, γ L = 1.5 γ_L=1.5 γL=1.5,c=1

结果:
在这里插入图片描述

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

‭刘燚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值