找回密码
 注册
6月份EDA365直播计划
查看: 251|回复: 2

怎样用MATLAB的图像处理功能进行同态滤波

[复制链接]

该用户从未签到

发表于 2019-12-3 09:39 | 显示全部楼层 |阅读模式

EDA365欢迎您登录!

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

x

1 U" v" L9 ~2 G% M/ i9 U$ t3 b同态滤波:
5 |5 k% N8 o$ g" e1 [
利用广义叠加原理对同态系统进行滤波。

4 p3 Y% g" O0 e, z8 U$ ?* Z1 Q" R: x7 A. Z, {" E
同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。
1 q9 y% _' [/ ~8 T1 R( e

7 d3 I$ l) c7 {4 Q' @6 D同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。; q& g( q7 t2 l0 r0 C/ ^" ]3 l& ]

% Z0 J; j: o% Q  E! N1 f& p$ c2 i' f6 p3 g& h0 T- x
同态滤波处理的基本流程如下:
; E" I8 D. W6 j' ?; \4 T, \$ z8 G

1 @* b" y; X" X' V* ~$ pS(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)

& T- ?: d) w  o- E, [3 Y) @4 _# P! k, G
+ [7 f1 g; e/ A7 I8 m- K" U  S其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。0 g- I5 T# w% f- m6 l
2 S5 E7 i2 n- W( [) f! x
下面是一张典型的同态滤波与其他图像处理方式的异同:; g! [0 n! r* e3 Y/ n- }6 ?# P, P
. s. {6 }+ K; q
怎样用MATLAB的图像处理功能进行同态滤波-3.png
+ D8 M  @4 ]; p# y
# J8 r! P: k+ G6 r, l4 d2 t6 @3 o* \3 }
实现代码:) q# ~9 P. F! P' q. ~& {; n
& I4 `" _) F5 M7 k. f
  • function 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('同态滤波增强后');+ g" Z  o+ C# j* s
  
; r- j7 t* _  y, Z/ d. r' r, i8 ^
实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。
4 K: h8 \% j* j: F1 q9 l, Z# _. [7 y( H5 m% X. H& J$ K- P
  I- G% h% A: Q* q: f8 O) w% Q
下图为原始图像,属于低曝光的一幅图像:- @) Y" [" Q9 e
8 s9 I  C" I- {9 ?1 H# F# ?: O
怎样用MATLAB的图像处理功能进行同态滤波-2.jpg
4 w. T- q9 v3 U+ x: A, a
4 T: q+ M- [2 x6 @' ^: R+ ^' W) r. u& [# {
同态滤波后:; \6 |  r) v, O" r9 C

7 ?2 E( ^# w3 r/ a3 q3 ^4 u3 e
怎样用MATLAB的图像处理功能进行同态滤波-1.jpg & [+ \! r$ Y3 H% d3 a% {2 b( K5 @' e
8 V6 v, ^! v) N' l5 N' K% N
6 t) G3 \8 f2 k, t, [$ B" E

& n  M7 s+ R5 \# v- c

该用户从未签到

发表于 2019-12-3 18:07 | 显示全部楼层
赞一个,感觉很好
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-12-4 18:04 | 显示全部楼层
    谢谢分享,感觉这个软件好强大啊
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号 )

    GMT+8, 2020-6-4 22:30 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19925233282

    快速回复 返回顶部 返回列表