1.事例背景
伴跟着人类工业化进程的不断推动,空气污染也越来越严峻,特别是雾霾气候在一年 中所占的份额也在逐年上升。雾霾气候往往会给人类的生产和生活带来极大不便,也大大 增加了交通事故发生的概率。- 般而言,在恶劣气候(如雾天、雨天等)条件下,户外景 物图画的比照度和颜色也会被改动或退化,图画中蕴含的许多特征也会被掩盖或含糊,这 也会导致某些视觉体系(如电子卡口、门禁监控等)无法正常作业。因而,从雾霾气候所 收集的退化图画中恢复和增强景物细节信息具有重要的现实意义。数字图画处理技能已广 泛使用于科学和工程范畴,如地形分类体系、户外监控体系、主动导航体系等,为了保证 视觉体系全天候正常作业,就必须使体系习惯各种气候状况。
本事例展开了雾霾气候下的图画明晰化技能的评论,雾天图画的明晰化技能也有可能 对其他恶劣气候下的图画明晰化技能起到促进作用。
2.理论基础
2.1 空域图画增强
图画增强是指按特定的需求杰出–幅图画中的某些信息,并一起削弱或去除某些不需 要的信息的处理技能叫。图画增强的首要作用是相对于本来的图画,处理后的图画能愈加 有用地满足某些特定使用的要求。依据图画处理空间的不同,图画增强基本上可分为两大 类:频域处理法、空域处理法。频域处理法的基础是卷积定理,其经过进行某种图画改换 (如傅里叶改换、小波改换等)得到频域结果并进行修正的办法来完成对图画的增强处理。 空域处理法是直接对图画中的像素进行处理,-般是以图画灰度映射改换为基础并且依据 图画增强的方针来采用所需的映射改换,常见的图画比照度增强、图画的灰度层次优化等 处理均归于空域处理法。本事例首要介绍空域的直方图增强算法。
2.2 直方图均衡化
直方图是图画的一-种统计表达形式。对于一幅灰度图画来说,其灰度统计直方图可以 反映该图画中不同灰度级呈现的统计情况。-般而言,图画的视觉作用和其直方图有对应 联系,经过调整或改换其直方图的形状会对图画显示作用有很大影响。
直方图均衡化首要用于增强灰度值动态规模偏小的图画的比照度。该办法的基本思想 是把原始图画的灰度统计直方图改换为均匀散布的形式,这样就增加了像素灰度值的动态 规模,然后到达增强图画全体比照度的作用。
数字图画是离散化的数值矩阵,其直方图可以被视为一个离散函数,它表明数字图画
中每- – -灰度级与其呈现概率间的统计联系。直方图在必定程度上可以反映数字图画的概貌性描绘,包含图画的灰度规模、灰度散布、整幅图画的亮度均值和昏暗比照度等,并可以此为基础进行剖析来得出对图画
进一步处理的重要依据。直方图均衡化也叫作直方图均匀化,就是把给定图画的直方图分
布改换成均匀散布的直方图,是一种较为常用的灰度增强算法2。直方图均衡化归纳起来
包含以下三个首要进程。
●预处理
●灰度改换表。
●查表改换。
2.3大局直方图处理
MATLAB经过函数imread读取RGB图画,并经过维数mXnX3的矩阵来表明。其中, 维数mXn表明图画的行数、列数信息,维数3表明图画的R. G、B三层通道数据。因而, 大局直方图处理经过对RGB图画的R、G、B三层通道别离进行直方图均衡化,再整合到 新的图画的办法来进行。中心代码如下所示。
function In = RemoveFogByGlobalHisteq(I, flag)
if nargin < 2
flag = 1;
end
R = I(:,:,1);
G = I(:,:,2);
B = I(:,:,3);
M = histeq(R);
N = histeq(G);
L = histeq(B);
In = cat(3, M, N, L);
if flag
figure;
subplot(2, 2, 1); imshow(I); title('原图画', 'FontWeight', 'Bold');
subplot(2, 2, 2); imshow(In); title('处理后的图画', 'FontWeight', 'Bold');
Q = rgb2gray(I);
W = rgb2gray(In);
subplot(2, 2, 3); imhist(Q, 64); title('原灰度直方图', 'FontWeight', 'Bold');
subplot(2, 2, 4); imhist(W, 64); title('处理后的灰度直方图', 'FontWeight', 'Bold');
end
运转结果表明,大局直方图去雾算法可以完成含雾图画的增强作用,处理前后的直方 图在散布上具有显着变化,但在图画全体上简单呈现某些颜色失真的现象。
2.4 部分直方图处理
大局直方图均衡化增强仅仅将原图画的直方图进行了均衡化,未能有用坚持原始图画 的部分特征,简单呈现颜色失真问题。经过挑选固定尺度的滑动窗口作用于原始图画来进 行部分直方图处理,可以在- -定程度上坚持原始图画的部分特征,进步图画增强的作用。 因而,部分直方图处理经过对RGB图画的R、G、B三层通道别离进行部分直方图均衡化, 再整合到新的图画的办法来进行。中心代码如下所示。
function In = RemoveFogByLocalHisteq(I, flag)
g1 = GetLocalHisteq(I(:, :, 1));
g2 = GetLocalHisteq(I(:, :, 2));
g3 = GetLocalHisteq(I(:, :, 3));
In = cat(3, g1, g2, g3);
if flag
figure;
subplot(2, 2, 1); imshow(I); title('原图画', 'FontWeight', 'Bold');
subplot(2, 2, 2); imshow(In); title('处理后的图画', 'FontWeight', 'Bold');
Q = rgb2gray(I);
W = rgb2gray(In);
subplot(2, 2, 3); imhist(Q, 64); title('原灰度直方图', 'FontWeight', 'Bold');
subplot(2, 2, 4); imhist(W, 64); title('处理后的灰度直方图', 'FontWeight', 'Bold');
end
function g = GetLocalHisteq(I)
x=mat2gray(I);
f=im2double(x);
w=4;
k=0.06;
M=mean2(f);
z=colfilt(f,[w w],'sliding',@std);
m=colfilt(f,[w w],'sliding',@mean);
A=k*M./z;
g=A.*(f-m)+m;
g=im2uint8(mat2gray(g));
部分直方图的处理结果表明该算法能有用坚持原始图画的部分特征,未呈现显着的色 彩失真现象,一起也得到了去雾增强的作用。可是,该算法处理结果全体亮度偏暗,仍然 存在某些含糊区域。
2.5 Retinex增强处理
根据大局直方图、部分直方图的图画去雾算法有理论及完成上比较简单,能起到必定 的去雾处理作用。为了进行比照,实验中采取了Retinex 图画增强算法来进行比照,该算 法可以平衡图画灰度动态规模压缩、图画增强和图画颜色恒常三个指标,可以完成对含雾 图画的自习惯性增强。因而,Retinex 增强处理经过对RGB图画的R、G、B三层通道分 别使用Retinex 算法进行处理,再整合到新的图画的办法来进行。中心代码如下所示:
function In = RemoveFogByRetinex(f, flag)
if nargin < 2
flag = 1;
end
fr=f(:, :, 1);
fg=f(:, :, 2);
fb=f(:, :, 3);
mr=mat2gray(im2double(fr));
mg=mat2gray(im2double(fg));
mb=mat2gray(im2double(fb));
alf1=1458;
n=161;
n1=floor((n+1)/2);
for i=1:n
for j=1:n
b(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf1))/(pi*alf1);
end
end
nr1 = imfilter(mr,b,'conv', 'replicate');
ng1 = imfilter(mg,b,'conv', 'replicate');
nb1 = imfilter(mb,b,'conv', 'replicate');
ur1=log(nr1); ug1=log(ng1); ub1=log(nb1);
tr1=log(mr);tg1=log(mg);tb1=log(mb);
yr1=(tr1-ur1)/3;
yg1=(tg1-ug1)/3;
yb1=(tb1-ub1)/3;
alf2=53.38;
x=31;
x1=floor((n+1)/2);
for i=1:n
for j=1:n
a(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf2))/(6*pi*alf2);
end
end
nr2 = imfilter(mr,a,'conv', 'replicate');
ng2 = imfilter(mg,a,'conv', 'replicate');
nb2 = imfilter(mb,a,'conv', 'replicate');
ur2=log(nr2); ug2=log(ng2); ub2=log(nb2);
tr2=log(mr);tg2=log(mg);tb2=log(mb);
yr2=(tr2-ur2)/3;yg2=(tg2-ug2)/3;yb2=(tb2-ub2)/3;
alf3=13944.5;
l=501;
l1=floor((n+1)/2);
for i=1:n
for j=1:n
e(i,j) =exp(-((i-n1)^2+(j-n1)^2)/(4*alf3))/(4*pi*alf3);
end
end
nr3 = imfilter(mr,e,'conv', 'replicate');
ng3 = imfilter(mg,e,'conv', 'replicate');
nb3 = imfilter(mb,e,'conv', 'replicate');
ur3=log(nr3); ug3=log(ng3); ub3=log(nb3);
tr3=log(mr);tg3=log(mg);tb3=log(mb);
yr3=(tr3-ur3)/3;yg3=(tg3-ug3)/3;yb3=(tb3-ub3)/3;
dr=yr1+yr2+yr3;dg=yg1+yg2+yg3;db=yb1+yb2+yb3;
cr=im2uint8(dr); cg=im2uint8(dg); cb=im2uint8(db);
In=cat(3, cr, cg, cb);
if flag
figure;
subplot(2, 2, 1); imshow(f); title('原图画', 'FontWeight', 'Bold');
subplot(2, 2, 2); imshow(In); title('处理后的图画', 'FontWeight', 'Bold');
Q = rgb2gray(f);
M = rgb2gray(In);
subplot(2, 2, 3); imhist(Q, 64); title('原灰度直方图', 'FontWeight', 'Bold');
subplot(2, 2, 4); imhist(M, 64); title('处理后的灰度直方图', 'FontWeight', 'Bold');
end
处理前后的直方图散布表明,Retinex图画增强可以在–定程度上坚持原始图画的部分 特征,处理结果较为滑润,颜色特征也较为天然,具有良好的去雾作用。
3.拓宽
根据图画处理的去雾增强技能可以显著进步比照度、杰出图画细节、提升视觉作用, 该办法现已广泛使用于项目实践。根据直方图均衡化模型的去雾办法针对性强,运转功率 高,且易于融合于其他图画增强算法,所以该技能必将获得进一步发展。 虽然图画去雾技 术在实际使用中现已取得了若干成果,但在不同的场景下仍然面对着某些局限性,需求引 起研究人员的进一步关注。
(1)雾天实时视频的去雾技能。跟着视频拍照设备的不断普及,在雾天进行视频拍照 或监控,所面对的要害需求就是进步去雾算法的运转功率,完成去雾的实时处理。现在, 部分雾天视频明晰化装置体系中采用了运转功率较高的插值直方图均衡化算法来完成对 视频图画序列进行去雾处理,也有部分研究者经过采用图画恢复的相关技能来进行视频监 控进程中的去含糊操作,从而到达去雾作用。因而,完成视频的高功率去雾算法,具有很 大的使用价值。
(2)雾天图画的含糊成像技能。图画增强技能和图画恢复技能都可以在-定程度上实 现图画的去雾作用,但这里面并没有触及图画获取设备在对3D空间进行拍照时所引起的 信息丢掉问题以。经过对雾天图画的拍照原理进行剖析,由于雾天大气粒子的本身成像因 素,可能会造成图画边缘含糊、比照度降低的现象。因而,充分利用图画的含糊成像信息, 结合雾天粒子映射原理,可以在图画的获取进程中进步图画的可视化作用。
(3)雾天图画优化功率。图画或视频去雾一般会触及大规模矩阵核算及非线性方程求 解等数据核算进程,在传统的求解进程中可能会呈现内存溢出、速度过慢等问题,采用 GPU加速或散布式核算的办法来进步这些进程的运转速度,以及经过硬件投入来进步雾天 图画的优化功率,这也是完成产业化的一一个途径。