|  | 
 
| 
基于MATLAB图像处理的去雾算法2 U" M& N. H2 b8 W- \4 _+ }0 c
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  
 5 A& A4 \& U: D9 H0 a) v+ s0 q
 * {% K2 W. Z1 y1 N( W7 w7 U" ?9 m0 _
 ' ?3 T& c* K8 l" Y/ v! [( ^使用MATLAB进行图像的去雾操作,网上一搜,这方面的东西很多,貌似已然成为研究的一个方向,大牛辈出!
 6 k( A6 g! i5 y. y0 D$ i5 |+ `8 H% [- d, ^8 Q4 D
 ' Y" t) B; O, i1 I$ f
 这里仅仅给出一个代码,能实现图像的去雾操作,详细的看后边有没有时间,想自己研究研究。
 2 J+ ?. h" X3 R6 E0 w% ~! `/ |; ~4 |+ N
 
 # B, z$ Y$ Q1 m' M. h, i5 b% b$ ~- f8 M
 1 o! P) r- {. E* q" D, Ifunction darktest(filename)%暗影去雾算法%filename------文件名或文件绝对路径%用法:darktest('7.png')close allclcw0=0.65;   %0.65  乘积因子用来保留一些雾,1时完全去雾    t0=0.1; I=imread(filename);figure;set(gcf,'outerposition',get(0,'screensize'));subplot(221)imshow(I);title('原始图像');[h,w,s]=size(I);min_I=zeros(h,w);            %下面取得暗影通道图像for i=1:h                     for j=1:w        dark_I(i,j)=min(I(i,j,: ));    endendsubplot(223)imshow(dark_I);title('dark channnel的图形'); Max_dark_channel=double(max(max(dark_I)))  %天空亮度dark_channel=double(dark_I);t=1-w0*(dark_channel/Max_dark_channel);   %取得透谢分布率图 subplot(224)T=uint8(t*255);imshow(T);title('透射率t的图形'); t=max(t,t0); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I1=double(I);J(:,:,1) = uint8((I1(:,:,1) - (1-t)*Max_dark_channel)./t); J(:,:,2) = uint8((I1(:,:,2) - (1-t)*Max_dark_channel)./t); J(:,:,3) =uint8((I1(:,:,3) - (1-t)*Max_dark_channel)./t);subplot(222)imshow(J);title('去雾后的图像'); end. ], A& X# i. [% {! X# B5 r. o
 
 : N: }( [5 p( J  k3 B& C3 V" A2 g; A7 h2 C6 f* I7 B; w0 b
 
 , E  x& s# H9 T  y' r2 t* [2 t5 \4 `! @( P! Q0 i  k/ z' ?" B( }
 
 | 
 |