黃林彩 王智文 符曉彪 劉美珍
摘? 要:圖像邊緣包含大量信息,提取這些圖像邊緣在圖像處理和目標識別等計算機視覺方面有著重要作用。針對傳統(tǒng)Canny算法在提取圖像邊緣時存在抗噪能力弱、梯度信息提取不全面造成邊緣缺失等問題,提出基于多方向和最佳閾值的Canny算法手勢圖像邊緣檢測。采用中值濾波和雙邊濾波作為混合濾波器代替高斯濾波,采用八方向模板的Sobel算子計算梯度幅值,用迭代法選取最佳閾值檢測和連接邊緣。實驗結果表明,改進的Canny算法提取的手勢圖像邊緣自適應性強,邊緣定位準確,抗噪性能好,為手勢識別提供了保障。
關鍵詞:圖像邊緣檢測;Canny算法;Sobel算子;混合濾波器;八方向模板;閾值
中圖分類號:TP391.4? ? ? ? ? ?DOI:10.16375/j.cnki.cn45-1395/t.2022.01.011
0? ? 引言
隨著科技進步和智能識別的發(fā)展,人與計算機的交互逐漸成為研究熱點,如手勢姿勢識別、人體運動姿勢識別、行人走路姿勢識別等[1]。動作姿勢有著豐富的語義信息,計算機可以通過傳遞的語義信息做出相應的動作,以滿足人類的需求,因此,對于姿勢的識別尤為重要[2]。在姿勢識別過程中,姿勢的邊緣檢測也是研究的重點,具備抗噪能力、定位準確、適應性強的邊緣檢測算法成為眾多學者的研究目標。
在邊緣檢測算子中,一階導數(shù)邊緣檢測算子通過模板與圖像進行卷積,使用閾值提取圖像邊緣,常用的有Roberts算子和Sobel算子。二階導數(shù)邊緣檢測算子如Laplace算子,其特點是對噪聲敏感,適用于無噪聲的圖像。而Canny算子結合了高斯函數(shù)、一階導數(shù)和雙閾值來提取圖像邊緣,邊緣檢測效果突出,得到了廣泛的應用。Canny算子有3條關于邊緣檢測的準則:1)盡可能找到較多的邊緣點,達到較低的誤檢率;2)檢測出的邊緣定位準確,與實際邊緣點間的差距較小;3)檢測到的邊緣點具有單一性,不存在偽邊緣的情況。為提高Canny算子的邊緣檢測精度,學者們做了許多改進。文獻[3]為去除圖像中無用的信息,減少干擾,提出結合形態(tài)學的操作去除噪聲,并且使用Otsu算法自適應確定雙閾值。文獻[4]中的閾值分割方法是通過梯度方差對圖像進行分塊,提高了邊緣檢測的精度和準確度。文獻[5]提出融合Canny自適應算法和小波模極大值法,使提取的邊緣較連續(xù)和完整。文獻[6]在去除噪聲中采用自適應的中值濾波和雙邊濾波相結合,通過最大熵自適應選取閾值,采用霍夫變換與像素點的梯度方向相結合進行檢測,連接邊緣,改進后的算法不僅噪聲去除效果好,而且邊緣連續(xù)性強。
本文在前人的基礎上,通過總結和分析圖像的濾波算法和邊緣檢測算子[7],提出了一種改進的Canny算法并將其應用于手勢圖像的邊緣檢測。針對高斯濾波會模糊圖像邊緣且去除椒鹽噪聲效果差的情況,使用中值濾波和雙邊濾波作為混合濾波器來代替高斯濾波;增加Sobel方向模板來計算圖像梯度;對于人工設定的高低閾值,使用迭代最佳閾值實現(xiàn)雙閾值的確定。
1? ? 傳統(tǒng)Canny圖像邊緣檢測算法
Canny圖像邊緣檢測算法于1986年由Canny[8]提出并一直沿用至今,主要有4個步驟。
Step 1? ?設計高斯濾波器。使用高斯濾波器對原始圖像進行濾波,高斯濾波器可以用式(1)來? ?設計:
[H(x, y)=12πσ2exp-x2+y22σ2],? ? ? ? ? ? ? ? (1)
式(1)中:[H(x, y)]表示高斯濾波器,[σ]表示高斯函數(shù)的分布參數(shù)。噪聲抑制能力隨著[σ]減小而減小,邊緣定位精度隨著[σ]減小而增大。因此,[σ]的取值大小決定了圖像的去噪能力。
Step 2? ?計算圖像的梯度幅值和方向。Sobel算子是通過0°和90° 2個角度方向來計算圖像梯度幅值[9]。梯度幅值[g]和方向[θ]分別用式(2)和式(3)? ? 計算:
[g=g2x+g2y],? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
[θ=arctangygx].? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
Step 3? ?對圖像邊緣進行非極大值抑制。根據(jù)梯度運算計算出每個像素點的梯度方向和大小之后,對圖像邊緣進行提取,就是要找出圖像中變化最明顯的地方,抑制不是極大值的點,排除干擾。即中心點與所屬方向上的像素點進行幅值比較,當大于該方向上的所有像素點的梯度幅值時,該灰度值為幅值,否則灰度值為0。
Step 4? ?采用高低閾值對圖像進行邊緣檢測和連接。在非極大值抑制后,通過設定的高低閾值來進一步確定圖像邊緣,消除虛假邊緣[10]。當圖像某一點的像素灰度值大于所設定的高閾值,則確定為邊緣點,灰度值歸為255進行保留;小于低閾值的像素點判定為背景,灰度值作為0處理;處于高低閾值中間的像素點,則根據(jù)其鄰域像素值來確定。
2? ? 改進的Canny算法
傳統(tǒng)的Canny算法利用高斯濾波來平滑噪聲,去噪效果不強,不能很好地保護圖像邊緣,導致邊緣細節(jié)缺失,而中值濾波能平滑椒鹽噪聲。雙邊濾波與高斯濾波的原理相似,它的優(yōu)點是保護圖像邊緣。因此,本文設計了結合中值濾波和雙邊濾波優(yōu)點的混合濾波器。為提取到更全面的圖像梯度信息,提高邊緣的定位精度,根據(jù)文獻[11],采用八方向梯度模板的Sobel算子。傳統(tǒng)的Canny算法需要手動設定高低閾值,沒有根據(jù)圖像的特征來選取,缺少普遍的適應性,存在圖像邊緣漏檢和誤檢的情況。根據(jù)文獻[12],采用迭代最佳閾值算法選擇最優(yōu)的高低閾值,實現(xiàn)對手勢圖像的邊緣檢測和連接,其算法流程圖如圖1所示。