|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
B% ~7 E' U2 r8 V( J. q1 _3 [同态滤波:7 J5 }" P- @8 u6 i7 H
利用广义叠加原理对同态系统进行滤波。
/ f. Y8 z$ E2 q& c9 [3 i6 o9 }) z% h
同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。" q. n9 E+ i, T; H2 b5 E# X
% |- ^5 O; Q/ i
同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。
2 r6 F! w! e1 r7 f: ~5 j5 I" `. u4 V: p- T+ `7 x }
1 W8 E3 f5 S% P$ z E& j; u同态滤波处理的基本流程如下:
0 l+ g4 a+ @0 H0 z1 {8 A
: f# h% U; m$ Y! f: SS(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)
7 I9 v; b7 d& ~) X) D1 G
7 O( E% y3 H: q! m* L4 Q其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。) r- }. T* L& b9 T* j! \( i* q0 Z0 h
6 c1 O: N. q9 R, J下面是一张典型的同态滤波与其他图像处理方式的异同: T1 q9 x: C- [! Y4 q
+ b( u3 g( Y- U/ \
Y! p; x6 w* r) y% s1 x8 H0 U
# o$ u/ O9 [* r# u/ w
0 M" I' Q' B9 m( ^+ J实现代码:2 z# I# L$ q o+ f% z1 S0 I# d
# ~& y7 w. b9 t- 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('同态滤波增强后');
1 J% ~# Z- i7 f" L ; L Y7 j8 c' S: f4 }1 v9 w) H
- V- X7 N# D6 b9 k/ a实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。& T, ?& W: i4 m$ r
5 J5 ?- J9 I* t% m) r+ B' O& y& G
5 a4 [9 c/ l* C4 Z7 m下图为原始图像,属于低曝光的一幅图像:$ Y2 p2 `3 O. E3 w
7 ~+ N' k7 N7 y, o$ b) ?
6 |: S; s# O! [/ U5 c1 y1 w
+ r1 Q- H: g7 D; ^/ P$ N( W7 ~+ S0 ^) ~7 [+ Z( H- S' E6 E$ z5 [
同态滤波后:$ a! }( d7 `, J5 d! j7 Q$ D# N. x
y, q0 u1 y* T8 h7 }% @5 U
0 d" y" ~# ^8 u, [! r
* _. \' }$ f, F/ y3 c
, ` X: v3 {( b* p# D* B
y- J2 K7 l; A: j/ P+ l2 H4 V$ l |
|