基于暗通道优先算法的去雾应用Matlab

本文主要介绍了基于暗通道优先算法的去雾应用,适用于Matlab环境。通过主函数、暗通道函数和基于梯度的指导滤波器实现图像去雾,最后展示输出结果。参考了He等人及Kou等人的相关研究工作。
摘要由CSDN通过智能技术生成

理论见博客:

http://www.cnblogs.com/changkaizhao/p/3266798.html

http://www.cnblogs.com/Imageshop/p/3281703.html

由于课程作业的需要,仅仅进行简单研究。

1.主函数

clc;
clear all;
close all;
J = imread('4.jpg');
J = double(J);
J = J ./255 ;
figure(1); imshow(J); 
%% 求暗通道图像 Jdark = min(min());
Jdark = Idark(J);
figure(2);imshow(Jdark,[]);

%%
% 注意:何凯明使用了soft matting方法对得到的粗透射率Jt进行细化 
%       本代码采用梯度导向滤波实现
Jdark = gradient_guidedfilter(Jdark,Jdark, 0.04);
figure(3);imshow(Jdark,[]);
%% 大气物理模型 J = I*t + A*(1-t)  【直接衰减项】+【大气光照】
% 透射率 t与深度的关系 t=exp(-a*depth)
w = 0.95;         %雾的保留系数
Jt = 1 - w*Jdark; %求解透射率

%% 求解全局大气光照
% 1.首先对输入的有雾图像I求解其暗通道图像Jdark。
% 2.选择Jdark总像素点个数千分之一(N/1000)个最亮的像素点,记录像素点(x,y)坐标
% 3.根据点的坐标分别在原图像J的三个通道(r,g,b)内找到这些像素点并加和得到(sum_r,sum_g,sum_b).
% 4.Ac=
  • 26
    点赞
  • 212
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值