同态滤波及matlab实现,怎样用MATLAB的图像处理功能进行同态滤波

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

4 \  V% b( V5 U

同态滤波:1 s$ t( _. v! {1 z! K

利用广义叠加原理对同态系统进行滤波。

( x/ V) ?. H2 N9 [+ E$ p1 e/ ]" C/ b& K. M# D: }1 N. ~" L/ B

同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。. k1 s' c% m& n& V" U- |- e

# `1 G2 ^/ E. h5 B+ n: d6 b同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。0 l0 @$ {/ t9 {/ a  G& c6 U+ v  _

# C* r) q1 I' D! v% p! B

3 O( K* @: I: ~8 U$ D* G同态滤波处理的基本流程如下:; u  Z$ g' d. S$ [( t

6 {5 i/ w4 p* R( S; I( m" O

S(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)

) B5 T# j% c$ G9 ]5 c0 B8 Q; u2 o- M1 j  K* b, ?1 M7 M0 a

其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。( N2 L% V8 x$ V* L$ i6 }' t

$ m) I; \" v' c# x; n% g' q/ v

下面是一张典型的同态滤波与其他图像处理方式的异同:

( S( f6 F5 W9 {: z1 [5 @

; R( @9 j& T& U

none.gif

怎样用MATLAB的图像处理功能进行同态滤波-3.png (78.06 KB, 下载次数: 0)

2019-12-3 09:37 上传

* l3 D6 M- [  R3 z  t* W5 H

0 l( M2 ^8 \* ~1 M% m9 \

5 W  L1 v, T0 \$ r* N6 ^实现代码:

# M2 u: G, a4 c) ?1 {2 R/ Z

) i  }6 {$ G# h; _- [; s+ v8 pfunction I3 = test_tontai(I)

I=double(rgb2gray(I));

[M,N]=size(I);

rL=0.5;

rH=4.7;%可根据需要效果调整参数

c=2;

d0=10;

I1=log(I+1);%取对数

FI=fft2(I1);%傅里叶变换

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);%傅里叶逆变换

I3=real(exp(I2));

subplot(122),imshow(I3,[]);title('同态滤波增强后');

) f3 }" A0 y; F. L

6 [0 y4 n4 }2 R" Q# U

L  {& L3 T) j/ k' ~! k# Q: d实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。" W5 ~2 E, w7 v5 ]: ?% J1 c

+ {. w/ C9 |0 O2 ]3 M0 l

3 a$ T" B4 u! e# s

下图为原始图像,属于低曝光的一幅图像:" `0 |/ V& s/ p- ~! b  W6 T

% s2 a$ E; H! L% i

none.gif

怎样用MATLAB的图像处理功能进行同态滤波-2.jpg (61.81 KB, 下载次数: 1)

2019-12-3 09:37 上传

/ J* V/ c. l7 Z3 L

7 r1 R( [' Y0 e) b- |0 s& h

/ v1 @' j, n( o% k# W, P

同态滤波后:

X% _( F5 d3 w

4 S8 d4 J' W; s# u, J; Y

none.gif

怎样用MATLAB的图像处理功能进行同态滤波-1.jpg (65.14 KB, 下载次数: 0)

2019-12-3 09:37 上传

8 `1 |' B. W9 I) ~) a- t

: u% b1 J& p& o& r6 B+ [+ n7 B- G# b7 H$ w4 F4 `! c% K

9 ^$ B9 d% Y/ ^; `

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值