韓龍飛,逯超
?
基于改進Sobel算子邊緣檢測的實現
韓龍飛,逯超
(長安大學汽車學院,陜西 西安 710064)
邊緣檢測已經成為計算機視覺領域最活躍的課題之一。傳統的Sobel算子邊緣檢測算法存在精度不高、提取的邊緣特征粗略等缺陷,文章提出了一種改進的Sobel算子邊緣檢測算法,在原有水平和垂直方向上增加了兩個對角線方向上的模板,提高了對彎道路面上車道線的識別精度。在MATLAB R2018b平臺下仿真實驗,結果表明,該方法提取得到的邊緣更加精細,局部特性更好,抗噪聲能力更強。
Sobel算子;邊緣檢測;四方向模板;車道識別
邊緣檢測是圖像分割算法的一種,圖像的邊緣是指其局部區域亮度變化最顯著的部分,主要存在于目標、目標與背景以及區域與區域之間[1]。圖像上的邊緣點一般是圖像函數的極值點或者間斷點,因此,檢測圖像的邊緣特征就轉化為求解圖像函數的極值點或間斷點。從數學角度上解釋,可以通過求解圖像函數的梯度得到圖像邊緣,圖像的梯度可以用一階導數和二階導數來求解。一階導數檢測邊緣是否存在,二階導數的過零點的位置就是邊緣的準確位置,二階導數的正負代表暗亮部分[2]。由于數字圖像是以矩陣的形式儲存,矩陣的每個元素值在0-255之間,因此無法直接對其求導。通常把圖像作為一個平面或者曲面,采用某種算子對圖像矩陣進行卷積運算,從而得到圖像的梯度。
傳統的邊緣檢測梯度算法主要是基于圖像強度的一階導數和二階導數。基于一階導數的算子主要有Roberts算子、Sobel算子和Prewitt算子,基于二階導數的算子主要有Laplacian算子、Log算子、Canny算子。本文重點介紹傳統Sobel算法原理以及改進的Sobel算子邊緣檢測算法。
Sobel算法簡單、計算量小、速度快,并且對硬件要求低,成為最常用的算法之一,它是一種基于圖像強度的一階導數的離散型差分算子。Sobel算子使用水平和垂直兩個方向的3×3卷積模板(如圖1所示)分別對原圖像進行領域平均計算,然后計算圖像的一階導數從而得到圖像的邊緣點,這些點的集合構成了圖像的邊緣。圖像強度變化緩慢的區域,相鄰像素間的灰度值變化也較小,梯度幅值較??;而在圖像的邊緣,相鄰像素間的灰度值變化劇烈,梯度幅值較大。因此可通過計算圖像梯度幅值判斷圖像中是否存在邊緣以及確定邊緣的準確位置。通常用圖像函數的一階導數判斷圖像中是否存在邊緣,用二階導數確定邊緣點的精確位置。設H()代表圖像函數,則可以根據式(1)求出圖像的梯度向量。

式中,?H(x,y)代表圖像函數的梯度向量,Hx代表圖像的水平方向梯度,Hy代表圖像的縱向梯度。
圖2是圖像中心點()對應的3×3模板鄰域內像素點的分布。

圖2 H(i,j)的領域像素分布
在數字圖像中,圖像梯度的模也稱為梯度,可以通過(2)式求得。

在實際應用中,為了計算方便,常用式(3)近似計算。

梯度的方向:

代表圖像強度變化的方向。
(1)將圖像的每個像素點都分別與圖1所示卷積模板進行卷積運算,用卷積結果的最大值替換卷積模板中心所對應的像素值,作為新圖像的灰度值,即:

式中,()為新的灰度圖像像素點,H()H()分別為水平、垂直方向模板對同一像素點的卷積值。
(2)所有的像素卷積運算后得到一幅新的灰度圖像。
(3)選取一個合適的閾值T,若圖像梯度值大于該閾值T,則認為該像素點為邊緣點[3]。從數學上解釋,如式(6)所示。

由此可知,閾值的選取對圖像的質量起決定性作用,若閾值T選的過大,會丟失一些邊緣;若選的過小,則會留下較多的噪聲。
雖然傳統的Sobel邊緣檢測算法簡單、計算量小、速度快[4],但由于考慮的邊緣方向較少,只有水平方向和垂直方向,在彎曲路面上檢測到的邊緣圖像常常會丟失一些細節,具有一定的局限性。因此,本文針對傳統的Sobel邊緣檢測法,提出一種改進Sobel算子的邊緣檢測法,即在原有的水平和垂直兩個方向的基礎上增加兩個對角線方向,構成4個方向的卷積模板,如圖3所示。

圖3 改進的Sobel算子卷積模板
改進的Sobel算子重新調整了原有水平和垂直方向的梯度的權值,并提高了對角方向梯度的權值,使得該算法對斜向邊緣特征的提取更加準確。

圖4 改進的Sobel算子流程圖
設為的圖像矩陣(如式(7)所示),則改進Sobel算子的邊緣檢測實現主要步驟如下:

(1)將圖4所示卷積模板分別與圖像矩陣進行卷積運算。
(2)卷積運算結果最大值替換原像素點的灰度值,邊緣方向即為最大梯度相應的模板方向。
(3)圖像的二值化。取合適的閾值T,根據式(5)對新的灰度圖像進行二值化處理,得到一幅二值化圖像。
基于上述改進的Sobel算法,在MATLAB R2018b平臺下進行仿真實驗,傳統的Sobel邊緣檢測與改進的Sobel邊緣檢測效果對比如圖5至圖8所示。從圖中可以看出,改進后的圖像邊緣信息更加完整、清晰、明亮。

圖5 傳統的Sobel算法

圖6 改進的Sobel算法

圖7 傳統的Sobel算法

圖8 改進的Sobel算法
圖像邊緣檢測技術在生產安全監控、生物工程、醫學診斷、工業自動化、車道識別、遙感遙測及故障檢測等領域應用廣泛,并起著重要作用[5]。本文針對傳統Sobel邊緣檢測算法存在的不足,提出了一種改進Sobel邊緣檢測的算法,在原有水平和垂直方向上增加了兩個對角線檢測方向,提高了對斜向邊緣的檢測效果。在MATLAB R2018b平臺下進行仿真實驗,結果證明,改進的Sobel算法相比傳統的Sobel算法有著明顯的提升,檢測的邊緣更加精細,局部特性更好,抗噪聲能力更強。
[1] 王文峰,阮俊虎.MATLAB計算機視覺與機器認知[M].北京:北京航空航天大學出版社,2017.
[2] 王易川.基于視頻的ADAS車道監測系統的研究[D].杭州電子科技大學,2018:11-21.
[3] 梁娟.一種基于Sobel圖像邊緣檢測的改進算法[J].軟件導刊,2014,13(12):79-82.
[4] 孟子惠.基于圖像處理的車道偏離預警方法仿真與實現[D].東北石油大學,2018:14-21.
[5] 沈海德,張龍昌.基于Sobel算子的改進邊緣檢測算法[J].信息技術,2015(04):15-19.
An improved implementation of Sobel operator edge detection
Han Longfei, Lu Chao
( Chang'an University Automobile College, Shaanxi Xi’an 710064 )
Edge detection has become one of the most active topics in the field of computer vision. The traditional Sobel operator edge detection algorithm has some defects such as low precision and rough edge feature extraction. This paper proposes an improved Sobel operator edge detection algorithm, which adds two diagonal directions in the original horizon -tal and vertical directions. The upper template improves the recognition accuracy of the lane lines on the curved road surface. The simulation experiment under MATLAB R2018b platform shows that the extracted edges are more refined, the local characteristics are better, and the anti-noise ability is stronger.
Sobel operator; edge detection; four-direction template; lane line recognition
U462
B
1671-7988(2019)08-109-03
U462
B
1671-7988(2019)08-109-03
韓龍飛(1995-),男,就讀于長安大學汽車學院車輛工程專業,研究方向:無人駕駛車輛控制技術。
10.16638/j.cnki.1671-7988.2019.08.035