参考论文:He K M, Sun J, Tang X O. Single image haze removal using dark channel prior [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353.
大气光值和透射率
1、相关代码
close all;clear all
w0=0.65; %0.65 乘积因子用来保留一些雾,1时完全去雾
t0=0.1;
I=imread('1.png');
figure;
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('去雾后的图像');
2、测试结果