找回密码
 注册

扫一扫,访问微社区

2019年EDA365年度技术峰会
查看: 20|回复: 2

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
# b) R# K. {% v# i% Q* f) O' Q
同态滤波:
- ~% Q: J. Y7 `/ C
利用广义叠加原理对同态系统进行滤波。

# a9 p7 F1 c1 S
; Q2 c) |) W$ B$ Q, B$ s同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。

, l4 @! u& o- A
) q: Y3 m5 A) }) _2 a$ x2 j/ @同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。
# T- ?* L- Q# d" ^; M7 V
% w$ `# G( r* G) G% Q" a  C
* ?# S" m4 a  ~7 }3 y$ a9 \同态滤波处理的基本流程如下:
3 v' ^+ E7 N1 _( Y, L: {
0 q  [. l3 W  a6 Z+ Q) ^
S(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)
. ^' @3 `# U% ^4 I; n* K
8 M! J0 w8 _2 _9 [5 G- E
其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。
5 M, t7 ?9 O+ t: N. G4 R, D: C& P0 @7 b; M6 I! a) h- x! ~7 u
下面是一张典型的同态滤波与其他图像处理方式的异同:% X/ U, a5 u; r

  }# O6 s( J; C* p; W( o
怎样用MATLAB的图像处理功能进行同态滤波-3.png
+ P* X6 X5 F6 `- a3 X: l' e: }$ a4 U/ z/ S- P
7 W' E! C" B4 F( Z1 a
实现代码:' e& W/ f' f2 U3 h6 ?+ K/ p9 c% u6 M* K

) O8 S7 S; h. l$ H1 b
  • 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('同态滤波增强后');
    : T/ p: ]4 Q, ]8 h  ^, |
  + o1 J( V* Y! l# Q
2 W" X- b- R5 z7 b  a
实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。+ E; y( x7 {2 p' G! t

3 [6 a$ I' V( T% d) v4 q$ o2 Q5 X, X  j
下图为原始图像,属于低曝光的一幅图像:( i* p  [( N/ k2 d

9 Y* @0 h2 E1 a& }* V
怎样用MATLAB的图像处理功能进行同态滤波-2.jpg - j- p4 _1 H  E

" F0 U5 N  n, S
# ^1 [; c; o( S7 j; b* r同态滤波后:
1 m5 [$ i% q- t) r* c
  E. M: Q3 h1 o9 Q  h
怎样用MATLAB的图像处理功能进行同态滤波-1.jpg
% J' P- f. x% I5 M; ]& H' W0 [2 `, Y9 @8 |7 F2 j

; ]! D+ D8 J/ Z  e1 y- M) n2 b8 U8 a5 Y9 F( x; U

该用户从未签到

发表于 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, 2019-12-6 23:38 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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