清华大学,刘倩,基于单幅图像的快速去雾算法(知网上可以找到2013年的文章)。
此方法过程:
matlab实现的算法:
I=imread('tiananmen.jpg')
figure
imshow(I);
title('original');
%输入有雾图像
H=double(I)/255.0;
[h,w,c]=size(H);
%三通道最小值
M=min(H,[],3);
%对M进行均值滤波
sv = ceil(max(h, w) / 50);
if mod(sv, 2) == 0
sv = sv + 1;
end
f=fspecial('average',sv); %
Mave = imfilter(M, f, 'symmetric');
figure,imshow(Mave,[]),title('均值滤波后的结果');
% 求取M(x)中所有元素的均值Mav
Mav=mean(mean(M));
%求L
e=2.0;
L=min(min(e*Mav,0.9)*Mave,M);
% 利用Mave(x)和H(x),求出A
temp = max(H, [], 3);
A = 0.5 * (max(temp(:)) + max(Mave(:))) * [1; 1; 1];
% 去雾后图像F(x)
[h, w, c] = size(H);
F = zeros(h, w, c);
for k=1:c
F(:,:,k) = (H(:,:,k) - L) ./ (1 - L/A(k));
end
imshow(F,[]);
去雾效果
1,无天空效果不错
2、有天空效果较差,存在光晕
,