|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
* R) V$ a" m1 U1 o# Q9 L
同态滤波:
N5 d. h3 y' U; b利用广义叠加原理对同态系统进行滤波。
" P' Z8 R& ^4 O# w
! f. P( G& {% D# A4 U/ g5 ]同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。
7 C3 C. ~8 D2 m8 Z& n$ a0 h/ B/ {$ s- r D) P* g6 N
同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。
% D! E4 W+ @- [8 l7 P5 S4 ^* G# s3 E3 e: U" }$ K# A. Z: Q: t: L: c
" y6 {, l* V+ n
同态滤波处理的基本流程如下:$ F4 ~: Z* ^3 Z) a8 L4 p; z1 T0 F
" G5 t8 ~# v8 @5 ?2 F
S(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)& B) Z. k* r. J0 G9 x. I
% r' `; N7 Q3 |, h& F6 K4 s2 j
其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。
7 q/ |' t$ s ], K3 S3 Z* o( B8 ~3 r1 j: m- I
下面是一张典型的同态滤波与其他图像处理方式的异同:5 }! O$ ] I( i! p3 C
1 R3 X, I3 p2 g+ Y3 N* s: T1 h. v$ G
: N, o' `+ I4 @+ m, b8 e) X5 q# k. ?0 ^( G1 y. j" B
) W2 S/ u l. h. e% I5 a: U& L
实现代码:$ V' j& V/ v: Y% n
8 `% v& e7 }0 F3 ^) g! G# L
- 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('同态滤波增强后');
4 b+ m) x; s7 Z# H1 G* H
@, M3 m, R( ~5 V. H7 `5 a- r; V; V
; V9 i( w/ }; R3 E6 H实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。3 T8 t$ I! c( I9 R* A
- G) t5 X0 s3 A! B8 }6 I' r! a& z# t4 [& Q% r( v
下图为原始图像,属于低曝光的一幅图像:* b! O2 _; Y H1 d
5 l6 k& u6 t$ J! N1 O+ H& ^
* x, c2 u. M/ j% ~: Q' t/ v+ a% b/ o B8 H
% X, s* f- c% ]$ P$ E; |
同态滤波后:
7 R4 ]0 w$ K8 ~: b4 i
$ D$ @5 K2 G& G& g' d" H8 L
0 c0 B& P& p; Y: h3 {3 S: C
# G/ j: `* `$ H1 z2 w
: w! } v5 s* k4 w5 f4 d4 B) Q E! T% V# y& H3 M
|
|