低对比度闪电通道的图像预处理
2021-02-28安徽理工大学电气与信息工程学院
安徽理工大学电气与信息工程学院 王 淦
本文基于OpenCV对低对比度闪电通道图像进行预处理,过程主要分为闪电通道亮度提升及闪电通道边缘检测两方面。通过对低对比度闪电通道图像进行预处理,低对比度闪电通道图像得到平滑,增强闪电通道亮度,提升闪电通道边缘检测的操作性,得出有自适应性的低对比度闪电通道图像预处理流程。主要针对低对比度闪电通道图像自动识别处理的不足,提出用帧差法来剥去背景中的较亮云体和地物的干扰,最大限度保留闪电通道的细节,对闪电通道进行图像增强处理,使得通道有较好的识别性,为下一步的图像处理做准备。
1 帧差法的介绍
1.1 帧差法
帧差法具体来说就是将视频里的帧序列中任意取相邻两帧的图像或者取任意相邻三帧间的图像,然后通过使用基于单独帧图像像素的时间差分法和通过闭值化图像处理来识别出图像或视频中的潜在物体运动区间。
1.2 过程
选一张闪电发生前的图像作为背景图像,与要进行闪电通道识别的图像进行遍历对应像素对比。OpenCV没有直接进行帧差法的函数,手动实现流程图如图1所示。
图1 帧差法函数流程图
1.3 实现成果及评价
由该算法实现成果图2所示可看出使用帧差法较为完美地剔除了闪电通道原图中图像右边的发光云体,并且最大程度保留低亮度的闪电通道的细节。
图2 给定的闪电通道图像及帧差法结果图对比
2 对闪电通道进行Canny边缘检测的尝试
2.1 Canny边缘检测
通过Canny算子检测边缘的算法是将对我们有用的图像特征信息从给定的一幅图像中提取出来而且让这个过程更加简洁高效的一种算法。
2.2 Canny算子来检测闪电通道边缘的步骤
通过自适应高斯滤波器来抑制闪电通道图像的高斯噪声,调用Sobel卷积核来得到闪电通道图像中像素点的梯度大小和梯度方向,利用非极大值抑制来尽可能抑制噪声产生的虚假边缘,再用双阈值法来检测和确认闪电通道的真实边缘的和潜在的边缘,消除噪声产生的虚假边缘或孤立的弱边缘来完成最终的Canny边缘检测。
2.3 高斯滤波
高斯滤波是一种基于高斯函数的线性平滑滤波,对图像中的高斯噪声有良好的抑制效果。但物体的结构边缘的方向是混沌且不可预知的,在平滑前不知道结构边缘哪个方向需要更多的平滑效果。二维高斯函数的旋转对称性说明着高斯滤波卷积核在后续Canny边缘检测中不会偏向边缘的任一方向,此性质会平滑掉非常多肉眼难见的闪电通道细节。在此提出一个自适应方向的高斯滤波算法,如下:
自适应高斯滤波算法的实现流程图如图3所示。
图3 自适应高斯滤波流程图
2.4 自适应中值滤波
自适应高斯滤波在极其有效地对图像中的噪声进行抑制的同时,可以较好地保留闪电通道的细节,但是从效果图可以看出,自适应高斯滤波算法把闪电通道的亮度降低到一个不具备可操作性的程度,这会导致后续的研究无法正常开展。所以这里提出用自适应中值滤波算法来代替自适应高斯滤波算法对闪电通道图像进行平滑操作。设当前像素点灰度值为Zxy,自适应中值滤波步骤如下:
(1)给定初始卷积核区域为3×3;
(2)计算该区域内像素点的最大灰度值Zmax,最小灰度值Zmin,灰度中间值Zmed;
(3)若Zmin<Zmed<Zmax,转(5);否则将卷积核尺寸增大至5×5;
(4)若卷积核尺寸不违规,则输出灰度中间值Zmed;
(5)若Zmin<Zxy<Zmax,输出Zxy;否则输出Zmed。
2.5 计算梯度强度和方向
输入图像中物体边缘的方向是混沌且不可预知的,因此Canny算法使用两个Sobel算子来检测输入图像中的水平方向和垂直方向的边缘梯度。Sobel算子返回输入图像的每一个像素点的水平方向和垂直方向的一阶导数值,据此可得输入图像的每一个像素点的梯度幅值大小G和梯度方向角度θ。公式如下:
实现流程图如图4所示。
图4 计算梯度强度和方向流程图
2.6 非极大值抑制
非极大值抑制算法主要用于抑制虚假边缘对边缘检测的干扰,在得到输入图像的梯度图像后,检测到的边缘依然充满了大量虚假边缘,其抑制的实质是将除了局部最大值之外的像素点的梯度幅值大小全部置为0。闪电通道的边缘两端像素的梯度幅值大小较大,由于像素的梯度方向是混沌的,我们应该采用线性插值来修正梯度方向对结果的影响,图例如图5所示。
图5 线性插值示意图
非极大值抑制算法流程图如图6所示。
图6 非极大值抑制流程图
2.7 对闪电通道边缘检测的初步尝试
本次尝试对闪电通道原图进行帧差法过滤背景干扰,基于抑制噪声和保留细节的平衡性选择直方图拉伸进行图像增强处理,之后对处理图像基于高斯滤波的原理选择σ=1.6进行自适应高斯滤波,结果如7(a)所示,图7由左向右分别为(a)自适应高斯滤波效果图、(b)梯度幅值图像、(c)非极大值抑制效果图、(d)自适应高斯滤波效果直方图。之后对图7(a)计算梯度强度和方向,结果如图7(b)所示。之后对图7(b)进行非极大值抑制处理,结果如图7(c)所示。可以看出自适应高斯滤波虽然在抑制噪声方面有非常明显的效果,也比较完善地保留了闪电通道的细节。但是在这过程图像灰度级又一次被压缩,对比度又一次下降,这对接下来的阈值操作非常不利。从图7(b)和图7(c)中可以看出,非极大值抑制之后的图像可以观察到非常清晰的轮廓。该算法有效地“瘦”边。减少了梯度图像中多余的边缘,有效地保留了闪电通道的细节处的边缘。所以本文提出用自适应中值滤波来代替自适应高斯滤波算法来对图像进行平滑,图8由左向右分别为(a)自适应中值滤波效果图、(b)梯度幅值图、(b)非极大值抑制、(d)自适应中值滤波的直方图,从图8(a)及图8(d)可以看出,自适应中值滤波算法能够在保证闪电通道对比度的基础上对闪电通道图像上的噪声进行有效抑制,与此同时,也能保证闪电通道细节的完备性。由图8(b)及图8(c)可以看出自适应中值滤波可以使后续图像处理更具可操作性,在后续的阈值切割,区域生长方面都更加从容。
图7 自适应高斯滤波及后续操作效果图
图8 自适应中值滤波及其后续操作效果图
3 结束语
实验利用帧差法较好地分离了有强烈光源干扰的背景,再通过比较常用的三种图像增强算法,以此为基础进行了闪电通道边缘检测,针对OpenCV自带的高斯滤波函数无法适应闪电通道细节繁多地特点,本文提出了自适应高斯滤波算法,很好地对图像增强处理后的闪电通道图像进行了噪声抑制处理,并且较为完备地保留了闪电通道的细节。