EDA365电子论坛网
标题:
基于MATLAB图像处理的去雾算法
[打印本页]
作者:
pulbieup
时间:
2019-12-10 13:45
标题:
基于MATLAB图像处理的去雾算法
基于MATLAB图像处理的去雾算法
3 U* h0 S1 a0 R: y& u q( k
q2 ^8 n- u5 E
( @1 E* V% O7 ?' K
8 J, a& G& q9 G. O/ i, K
使用MATLAB进行图像的去雾操作,网上一搜,这方面的东西很多,貌似已然成为研究的一个方向,大牛辈出!
7 M! x# T2 ]5 `! O! h
9 X9 L+ X H8 ]& P
$ }7 g, ~7 C& I; y- U9 W
这里仅仅给出一个代码,能实现图像的去雾操作,详细的看后边有没有时间,想自己研究研究。
$ p; W5 S4 l4 x! U. X& T% V2 h
: P" D+ q& J/ u- q8 u' q
8 S: z: n. I- G8 b3 j: ~% P
function darktest(filename)
%暗影去雾算法
%filename------文件名或文件绝对路径
%用法:darktest('7.png')
close all
clc
w0=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,: ));
end
end
subplot(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
/ ~! Q5 _1 q9 j: j5 m2 ~0 s+ |
1 y9 E @! G4 [5 Z' p$ a+ }
2 V. z6 A& U. X" n! n
) h+ j' g; \. X H6 p; V* _
, v# B o1 H. c% d8 H0 x2 W
3 K/ b! f& Z1 ~# L" ?. x3 m
作者:
WNSKS
时间:
2019-12-10 19:39
支持
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2