|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
7 R3 K! |! y. q( I2 O3 R( q3 x
同态滤波:, T; ?2 Q7 j' E8 ?$ R# Q. p' N
利用广义叠加原理对同态系统进行滤波。
1 n7 R- W& q4 Y3 @! `% T3 f
% c6 ^, g1 A `8 I* x, x. J同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。# C3 M% i& F4 U+ z+ o: |
: \ |* G+ o5 ]同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。- \6 y( D- g5 ?& t% D) V8 o \) F
$ o& D+ M! O, x5 ^$ U
8 D0 p: }- f. A; D2 O同态滤波处理的基本流程如下:
3 O3 D q% N( l2 e9 c( m' g' u8 D
' o( h" a) I( G _ q KS(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)* x s) r# z. e/ H7 o3 ~" w
4 N+ ]9 i, n# H6 ^5 y# N/ N5 Y其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。
' _. v6 v( j% W @! b3 L, f2 C, u5 H. B( o# v4 c. s
下面是一张典型的同态滤波与其他图像处理方式的异同:
; g! p/ r( W3 c) K; ?1 [6 Y; d3 t- C& H1 _* M: f6 ?7 j
; s2 S# F' F8 J3 v6 H; ?2 o1 t
: A: W% ^5 `+ M0 z
) [( F5 f& G" C9 U$ }
实现代码:
+ ~0 n0 J$ M% |4 [) c0 J) \. ~: F( N6 y+ G$ ~
- 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('同态滤波增强后');7 ~$ k Y1 Y$ Z
/ Q* y+ I# E. n3 I6 A. `. b) U& ?
) o( [. a8 D! @0 l9 c6 ^实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。
' r; d/ @" k, H9 S
5 V6 m3 n1 E& T9 ]! D1 ?
8 y; l/ M, H% M* u下图为原始图像,属于低曝光的一幅图像:
$ |" J/ G) a7 j6 z) E) h
# M0 C8 Q. o* O$ [- t0 c) d
7 f) \! D I* Z1 I; D. \" `" Q2 F
% f c5 [0 h! `# w, {/ k, g# O
同态滤波后:( E- |8 }" D+ ?/ E+ B' k
/ M+ w2 B/ M7 W; G- \; e
. z8 k$ [8 _7 ~0 E# Z1 O' A2 _0 X) O( {" e
- ^; W4 ~! p Q F: Q7 C
9 r! I3 D0 R1 y( s( S |
|