暗通道先验图像去雾算法——Matlab代码与测试

参考论文: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、测试结果
在这里插入图片描述

图1 去雾效果
  • 8
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值