安徽理工大學電氣與信息工程學院 王 淦
本文基于OpenCV對低對比度閃電通道圖像進行預處理,過程主要分為閃電通道亮度提升及閃電通道邊緣檢測兩方面。通過對低對比度閃電通道圖像進行預處理,低對比度閃電通道圖像得到平滑,增強閃電通道亮度,提升閃電通道邊緣檢測的操作性,得出有自適應性的低對比度閃電通道圖像預處理流程。主要針對低對比度閃電通道圖像自動識別處理的不足,提出用幀差法來剝去背景中的較亮云體和地物的干擾,最大限度保留閃電通道的細節,對閃電通道進行圖像增強處理,使得通道有較好的識別性,為下一步的圖像處理做準備。
幀差法具體來說就是將視頻里的幀序列中任意取相鄰兩幀的圖像或者取任意相鄰三幀間的圖像,然后通過使用基于單獨幀圖像像素的時間差分法和通過閉值化圖像處理來識別出圖像或視頻中的潛在物體運動區間。
選一張閃電發生前的圖像作為背景圖像,與要進行閃電通道識別的圖像進行遍歷對應像素對比。OpenCV沒有直接進行幀差法的函數,手動實現流程圖如圖1所示。
圖1 幀差法函數流程圖
由該算法實現成果圖2所示可看出使用幀差法較為完美地剔除了閃電通道原圖中圖像右邊的發光云體,并且最大程度保留低亮度的閃電通道的細節。
圖2 給定的閃電通道圖像及幀差法結果圖對比
通過Canny算子檢測邊緣的算法是將對我們有用的圖像特征信息從給定的一幅圖像中提取出來而且讓這個過程更加簡潔高效的一種算法。
通過自適應高斯濾波器來抑制閃電通道圖像的高斯噪聲,調用Sobel卷積核來得到閃電通道圖像中像素點的梯度大小和梯度方向,利用非極大值抑制來盡可能抑制噪聲產生的虛假邊緣,再用雙閾值法來檢測和確認閃電通道的真實邊緣的和潛在的邊緣,消除噪聲產生的虛假邊緣或孤立的弱邊緣來完成最終的Canny邊緣檢測。
高斯濾波是一種基于高斯函數的線性平滑濾波,對圖像中的高斯噪聲有良好的抑制效果。但物體的結構邊緣的方向是混沌且不可預知的,在平滑前不知道結構邊緣哪個方向需要更多的平滑效果。二維高斯函數的旋轉對稱性說明著高斯濾波卷積核在后續Canny邊緣檢測中不會偏向邊緣的任一方向,此性質會平滑掉非常多肉眼難見的閃電通道細節。在此提出一個自適應方向的高斯濾波算法,如下:
自適應高斯濾波算法的實現流程圖如圖3所示。
圖3 自適應高斯濾波流程圖
自適應高斯濾波在極其有效地對圖像中的噪聲進行抑制的同時,可以較好地保留閃電通道的細節,但是從效果圖可以看出,自適應高斯濾波算法把閃電通道的亮度降低到一個不具備可操作性的程度,這會導致后續的研究無法正常開展。所以這里提出用自適應中值濾波算法來代替自適應高斯濾波算法對閃電通道圖像進行平滑操作。設當前像素點灰度值為Zxy,自適應中值濾波步驟如下:
(1)給定初始卷積核區域為3×3;
(2)計算該區域內像素點的最大灰度值Zmax,最小灰度值Zmin,灰度中間值Zmed;
(3)若Zmin<Zmed<Zmax,轉(5);否則將卷積核尺寸增大至5×5;
(4)若卷積核尺寸不違規,則輸出灰度中間值Zmed;
(5)若Zmin<Zxy<Zmax,輸出Zxy;否則輸出Zmed。
輸入圖像中物體邊緣的方向是混沌且不可預知的,因此Canny算法使用兩個Sobel算子來檢測輸入圖像中的水平方向和垂直方向的邊緣梯度。Sobel算子返回輸入圖像的每一個像素點的水平方向和垂直方向的一階導數值,據此可得輸入圖像的每一個像素點的梯度幅值大小G和梯度方向角度θ。公式如下:
實現流程圖如圖4所示。
圖4 計算梯度強度和方向流程圖
非極大值抑制算法主要用于抑制虛假邊緣對邊緣檢測的干擾,在得到輸入圖像的梯度圖像后,檢測到的邊緣依然充滿了大量虛假邊緣,其抑制的實質是將除了局部最大值之外的像素點的梯度幅值大小全部置為0。閃電通道的邊緣兩端像素的梯度幅值大小較大,由于像素的梯度方向是混沌的,我們應該采用線性插值來修正梯度方向對結果的影響,圖例如圖5所示。
圖5 線性插值示意圖
非極大值抑制算法流程圖如圖6所示。
圖6 非極大值抑制流程圖
本次嘗試對閃電通道原圖進行幀差法過濾背景干擾,基于抑制噪聲和保留細節的平衡性選擇直方圖拉伸進行圖像增強處理,之后對處理圖像基于高斯濾波的原理選擇σ=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 自適應中值濾波及其后續操作效果圖
實驗利用幀差法較好地分離了有強烈光源干擾的背景,再通過比較常用的三種圖像增強算法,以此為基礎進行了閃電通道邊緣檢測,針對OpenCV自帶的高斯濾波函數無法適應閃電通道細節繁多地特點,本文提出了自適應高斯濾波算法,很好地對圖像增強處理后的閃電通道圖像進行了噪聲抑制處理,并且較為完備地保留了閃電通道的細節。