%暗通道去雾算法
%==========================================================================
%暗原色去雾算法是建立在户外自然场景暗通道优先法则的基础上的去雾方法
%其实就是解一个方程:I(x)=J(x)t(x)+A(1-t(x))
%其中I(x)是受到雾气污染的图像,J(x)是我们需要求的去雾后的图像
%t(x)是天空中云层的透射分布率,A是天空的亮度
%==========================================================================
img_name = imread('1.bmp'); %原始图像
I = double(img_name)/255;
[h,w,c] = size(I); %获取图像大小
w0 = 0.95; %去雾系数
dehaze = zeros(h,w,c); %初始化结果图像
win_dark = zeros(h,w); %初始化暗影通道图像
%--------------------------------------------------------------------------
%计算暗通道
%首先求出每个像素RGB分量中的最小值,存入一副和原始图像大小相同的灰度图中。
%然后再对这幅灰度图进行最小值滤波
for i=1:h
for j=1:w
win_dark(i,j) = min(I(i,j,:)); %每个像素存RGB三个分量
end
end
win_dark = ordfilt2(win_dark,1,ones(9,9),'symmetric'); %9*9(暗通道窗口)进行最小值滤波
%--------------------------------------------------------------------------
%计算大气亮度A
dark_channel = win_dark;
temp = max(max(dark_channel));
[i,j] = find(dark_channel==temp);
i = i(1);
j = j(1);
A = mean(I(i,j,:));
%--------------------------------------------------------------------------
%计算透射率t(x)
transmission = 1-w0*win_dark/A; %透射率预估
gray_I = I(:,:,1); %这里gray_I可以是RGB图像中任何一个通道
p = transmission; %透射率图
r = 80;
eps = 10^-3;
%用guided filter对trasmission map做soft matting获得更为精细的透射率图
transmission_filter = guidedfilter(gray_I,p,r,eps);
%gray_I是引导图像,p是输入图像,r是本地窗口半径,eps是正规化参数
%--------------------------------------------------------------------------
%求无雾图像
t0=0.1; %设置阈值
t1 = max(t0,transmission_filter);
for i=1:c
for j=1:h
for l=1:w
dehaze(j,l,i)=(I(j,l,i)-A)/t1(j,l)+A; %无雾图像恢复
end
end
end
%--------------------------------------------------------------------------
%显示图像
figure
subplot(121)
imshow(win_dark);title('暗通道')
subplot(122)
imshow(t1);title('透射率图')
figure
subplot(121)
imshow(I);title('去雾前')
subplot(122)
imshow(dehaze);title('去雾后')
图像去雾(报告,代码,ppt)
需积分: 42 127 浏览量
2018-01-24
16:04:41
上传
评论 5
收藏 21.46MB RAR 举报
qq_36190831
- 粉丝: 0
- 资源: 1
最新资源
- Unity XR 手势射击控制脚本(适用于任何可手势识别的设备)
- 机械设计全自动电表(NB和IC卡表)控制和上壳装配线sw16可编辑非常好的设计图纸100%好用.zip
- 基于matlab的EAN-13条形码识别系统GUI界面.zip代码53
- matlab基于bp神经网络交通信号标志识别GUI界面13个标志.zip代码54
- 电子万年历答辩实物展示视频mp4格式
- 基于python实现的程序,包括哈希感知算法cvHash,图像切割cvsplit,固定目标检测cvRec(附文档ppt)等
- 计算0-10000之间所有偶数的和
- multiled.zip
- 基于php实现的哈希算法的人脸检索
- 单片机 电子钟 设计报告/课程设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈