|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
* N+ c$ p: a+ S9 d1 k同态滤波:
2 K2 Q u: G% @1 A) }9 {* }利用广义叠加原理对同态系统进行滤波。, w8 V: e0 N# x& `* i
9 z: B0 p% a8 I: a4 k+ l s2 V: x
同态滤波是把频率过滤和灰度变换结合起来的一种图像处理方法,它依靠图像的照度/ 反射率模型作为频域处理的基础,利用压缩亮度范围和增强对比度来改善图像的质量。使用这种方法可以使图像处理符合人眼对于亮度响应的非线性特性,避免了直接对图像进行傅立叶变换处理的失真。8 M) p% s; k9 ~: k; G; j
! d1 O0 P) ?4 M& T; Q8 }& ?, F
同态滤波的基本原理是:将像元灰度值看作是照度和反射率两个组份的产物。由于照度相对变化很小,可以看作是图像的低频成份,而反射率则是高频成份。通过分别处理照度和反射率对像元灰度值的影响,达到揭示阴影区细节特征的目的。% {* i% F, u& M( j
$ R9 k. q3 ?* e
& u; _. y) {9 Z3 v- B" }8 E( M( f/ ]同态滤波处理的基本流程如下:" G+ [. w+ ?- Z7 _. x$ m. A2 i
0 n g1 ?7 p6 i, u: Y. wS(x,y)---->Log---->DFT---->频域滤波---->IDFT---->Exp---->T(x,y)5 x* v# f# m C4 L
( g& Z" [. N2 v3 ?: N0 q
其中S(x,y)表示原始图像;T(x,y)表示处理后的图像;Log 代表对数运算;DFT 代表傅立叶变换(实际操作中运用快速傅立叶变换FFT);IDFT 代表傅立叶逆变换(实际操作中运用快速傅立叶逆变换IFFT);Exp 代表指数运算。( r9 x# }5 p: O. o% o7 g
+ _/ @4 c7 p+ x/ z
下面是一张典型的同态滤波与其他图像处理方式的异同:
2 C3 K% e9 J e
/ o. i0 B7 ]: @, A% N2 ?& Z
# Q: x& ]7 H9 Z- n _1 R
& j. [1 x* ~8 C0 V/ \
5 v8 b V5 o0 u5 I: A实现代码:' B+ ]! b6 Q! {# ~
, y# R5 K) h" h8 C- 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 d( _5 _( g. Y& k
4 v# `+ q9 i# b5 h9 w
* B, h6 r; l- E- W# k实验发现,同态滤波有类似于高动态范围压缩的效果,比如可以把图像暗的部分提亮。- F+ N- L8 J+ _
. K* f$ E+ Z' t8 S7 ^% n; [
3 f+ E$ Z7 x+ m$ `下图为原始图像,属于低曝光的一幅图像:+ y* b2 E, \( S- M* p# @
1 V& O; Y6 H8 t
. |7 }# a" d7 G0 g* A
7 g( Q( x( z6 W7 @# a" \' l* l
同态滤波后:- q6 L4 u' l r1 k. V" m
; C6 ^ T" s X0 T/ ^ y U
3 O4 H2 f+ u1 t( a) Q9 O6 Z! H' \: w; ? D7 ~0 F8 m" l
' C! W5 j. Z2 W# q. w( J% D, L/ b
4 q3 ?' q5 i( i7 W: |" _ |
|