薛茹+呂毅馨+楊賽花+石慧慧
摘要 邊緣提取是圖像研究必不可少的一部分,本文先對多種邊緣提取的方法進行了比較,對傳統(tǒng)的Sobel算法進行了描述,在傳統(tǒng)算法基礎上,針對傳統(tǒng)Sobel算法存在的檢測方向性不強及邊緣提取較粗的缺點,提出了一種改進的5*5模板的8方向算法的邊緣提取算法,得到后的圖片再次用該算法處理進行邊緣細化。根據(jù)實驗結果可以得出,改進后的算法比傳統(tǒng)Sobel提取的邊緣更細、方向性更強。
關鍵詞 Sobel算法;算子;邊緣檢測;多方向模板;邊緣細化
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2016)27-0159-03
Abstract: Edge extraction is an essential part of image research. In this paper, a variety of edge extraction methods were compared. The traditional Sobel algorithm is described. In view of the traditional Sobel algorithm, the existence of the detection direction is not strong and edge extraction of the characteristics of the rough, an improved 5*5 template extraction method for multi direction algorithm is proposed.. After getting the picture again using the algorithm to deal with edge thinning. According to the experimental results, it can be concluded that compared with the traditional Sobel, the improved algorithm is more fine and the direction is stronger than the traditional one.
Key words:sobel arithmetic; operator; edge detection; multi direction template; edge thinning
1 引言
唐卡在藏族文化、歷史、政治等各個領域都有涉及,凝聚著藏族人民的智慧,記載了藏族歷史發(fā)展,具有很高的研究價值。 在日常生活中,人們主要采用語音和圖像這兩種方式來進行信息的傳遞[1],隨著科學技術和數(shù)字媒體的不斷發(fā)展,圖像所包含的信息越來越豐富。在醫(yī)學、氣象監(jiān)控、藝術創(chuàng)作、傳真、微生物工程等都有很大應用,因而圖像處理的技術變得越來越重要。而圖像邊緣是整個圖像的整體概貌,圖像的邊緣提取也就成了圖像處理技術過程中最基礎也最重要的一步,人們也希望找到一種方法可以抗噪強、定位準、不漏檢、不誤檢[2]。目前,邊緣提取算法主要可以分為三大類:
第一是基于導數(shù)的方法,比如[3]:1)Sobel算法:一階微分算法,在圖像空間利用兩個方向模板與圖像進行卷積;2)Roberts算法:一階微分的邊緣檢測算子,利用相鄰對角方向的兩個像素之差檢測邊緣;3)Prewitt算法:一階微分算法,利用水平和垂直兩個方向的卷與圖像的每個像素進行卷積,兩者得出的最大值即為結果;4)Kirsch算法:利用8個方向算子與圖像的像素進行卷積檢測邊緣;5)Canny算法:一種多級算法;
第二是基于能量準則的算法,比如:1)松弛算法: 指對于每個頂點v∈V,都設置一個屬性d[v],用來描述從源點s到v的最短路徑上權值的上界,稱為最短路徑估計;2)神經(jīng)網(wǎng)絡分析: 從神經(jīng)心理學和認知科學研究成果出發(fā),應用數(shù)學方法發(fā)展起來的一種具有高度并行計算能力、自學能力和容錯能力的處理方法;3)Snake算法: 給出初始的輪廓,然后進行迭代,使輪廓沿能量降低的方向靠近,最后得到一個優(yōu)化的邊界;
第三種是剛發(fā)展的一些新技術,比如:小波變換: 一種新的變換分析方法,它繼承和發(fā)展了短時傅立葉變換局部化的思想,同時又克服了窗口大小不隨頻率變化等缺點,能夠提供一個隨頻率改變的“時間-頻率”窗口,是進行信號時頻分析和處理的理想工具。
2 常用邊緣提取算法的比較
傳統(tǒng)的邊緣算法主要有Sobel算法、Prewitt算法、Roberts算法、Kirsch算法、Canny算法。這些邊緣檢測算法操作簡單,速度快,但是檢測的邊緣容易受到噪聲的干擾,所以都存在檢測出的邊緣不準確,造成誤差的原因主要有:1)圖像本身所具有的真實灰度與我們想檢測的灰度值之間不完全吻合;2)算子模板方向固定,忽略了其他方向的邊緣;3)都比較容易受噪聲影響。[4]
表1對傳統(tǒng)邊緣提取的算法在邊緣輸出、漏檢、假檢、邊緣檢測精度、耗時、抗噪能力等方面進行了比較。從表中可以看出,Sobel算法除了耗時比較長以外,是幾種傳統(tǒng)算法中最實用的一種算法,本文通過比較,以傳統(tǒng)Sobel算法為基礎,在此分析基礎上提出了一種改進后的Sobel算法。
3 傳統(tǒng)的sobel算法
3.1 傳統(tǒng)Sobel算法基本理論
Sobel算法是基于梯度的一階導數(shù)的邊緣檢測方法,由于圖像的灰度邊緣處會有跳變的現(xiàn)象[6],從而根據(jù)此現(xiàn)象來進行邊緣的檢測。傳統(tǒng)Sobel算子在圖像空間利用兩個方向模板與圖像進行卷積,一個是水平梯度方向,來檢測垂直邊緣;一個是垂直梯度方向,來檢測水平邊緣。模板中的數(shù)字為模板系數(shù),中間的點表示中心元素,梯度方向與邊緣方向總是正交垂直。兩個方向的算子如圖1所示:
3.2 算法實現(xiàn)
首先分別將水平和垂直方向上的兩個模板的中心點與圖像中的每個像素對應;然后用模板與圖像進行卷積;最后兩個模板與圖像進行卷積后得出的兩個值,比較大小,選出最大值,則為某點的新的像素值。也可理解為是求最大值的方法,用公式定義如下:
g(i,j)=|f(i-1,j+1)+2f(i,j+1)+f(i+1,j+1)-f(i-1,j-1)-2f(i,j-1)-f(i+1,j-1)|+|f(i-1,j-1)+2f(i-1,j+1)+f(i+1,j-1)-2f(i+1,j)-f(i+1,j+1)|
卷積模板如圖1,卷積的最大值為該點的輸出值。由于傳統(tǒng)的Sobel算法只考慮了水平和垂直兩個方向,忽略了邊緣的多方向性;其次,檢測出的邊緣有很多的偽邊緣,并且檢測出的邊緣較粗,本文提出了8方向的5*5模板的改進方法。
4 改進后的sobel算法
4.1 8個方向模板
傳統(tǒng)的Sobel算法只考慮了水平和垂直兩個方向,檢測出的邊緣較粗,并且具有偽邊緣,因此,有人提出了一些改進的方法,例如:1)先用Sobel進行邊緣檢測,用ostu二值化,最后用多像素邊緣細化算法進行細化;2)先用Sobel進行邊緣檢測,用Sobel進行細化,最后用自適應的動態(tài)閾值計算方法進行二值化;3)基于Sobel算法梯度相乘的熱紅外圖像邊緣提取;4)自適應權值的改進算法等等。而本文的改進方法是將邊緣方向擴展為0°、45°、90°、135°、180°、225°、270°、315° 8個方向,以此增加邊緣方向的準確性。如圖2,圖3所示[6]:
4.2 改進后算法的實現(xiàn)
設(i,j)為圖像上各點像素坐標,g(i,j)為圖像在該點的灰度值,[g(i,j)]矩陣為將要檢測的圖像,w(i,j)為最后檢測所得的結果,由于8個方向模板為5*5,s[g(i,j)]即為以點(i,j)為中心的5*5模板,f(k)為圖3中8個模板(其中k為0、1、2、3、4、5、6、7、),m為長度為8的數(shù)組。
第一步:將f(k)與s[g(i,j)]進行卷積,將計算所得的結果的絕對值存放在數(shù)組m中;
第二步:目的是:查找第一步算出的8個結果中的最大值,在一組數(shù)組中查找最大最小值,有二分法、冒泡排序法、選擇排序法等等,由于本文涉及的數(shù)組中數(shù)據(jù)較少,因此選擇順序查找法來找出數(shù)組中的最大值,順序查找法就是假定要從n個整數(shù)中查找最大值, 則從頭到尾逐個查找。具體步驟如下:
a、 令max=m[0],k=1;
b、 若m[k]>max,則max=m[k];否則,k=k+1;
c、 若k<8,則返回b;否則執(zhí)行第三步;
第三步:將max賦給w(i,j),即為該點的輸出值[7]。
最后的輸出值即為該點新的像素值。
4.3 邊緣細化
我們采用改進后的算法對圖像進行邊緣提取,得到的圖像1與原始的圖像相比,圖像1的邊緣灰度有變化,在此基礎上,我們在對圖像1進行同樣的處理,再用改進后算法進行提取,得到的圖像2在圖像1的基礎上,中間的圖像部分變成了背景,得到的邊緣更細,兩次所到的圖像邊緣進行相減,即:2-1得到圖像3,關于圖像3,我們將其邊緣像素的負值全部改為0,所得到的圖像即為細化后的結果圖。
5 實驗結果
為檢測改進后的算法與傳統(tǒng)算法的效果,在VC++環(huán)境下,以轉經(jīng)筒和唐卡為例對進行邊緣提取后的效果圖進行對比。圖4圖5為原圖;圖6圖7為傳統(tǒng)算法提取的結果;圖8圖9為改進后的效果圖。有圖可以看出,;圖6檢測出的邊緣相對清晰完整,而圖5提取的邊緣比較模糊,并且數(shù)據(jù)比較亂,圖6相對圖5檢測的邊緣更加豐富,總的來說,本文的方法很好保護了各方向的邊緣,得到了更好的效果。
6 結論
針對傳統(tǒng)Sobel算法的一些弊端,本文擴展成5*5的8方向模板,重新定義了模板中的權值,和傳統(tǒng)Sobel算法相比,在一定程度較好的保留并檢測出了各個方向的邊緣,且相對簡單,對于傳統(tǒng)的其他算法,如Roberts算法、Prewitt算法等都可以依據(jù)此方法進行改進,增加模板、擴展邊緣方向為8個或者更多,以此得到更好的應用。
參考文獻:
[1]鄭英娟.基于八方向Sobel算子的邊緣檢測[J].數(shù)字信息處理,2013(S2).
[2]章毓晉.圖像工程[M].北京:清華大學出版社,1999.
[3]何春華.基于改進Sobel算子的邊緣檢測算法的研究[J].信息光學與圖像處理,2012(3).
[4]李安安.幾種圖像邊緣檢測算法的比較和展望[J].信息 技術與通信,2009(12).
[5]高飛.Sobel邊緣檢測算子的改進研究[J].算法分析,2016(1).
[6]白俊江.基于Sobel的邊緣檢測方法[J].電腦知識與技術,2009(21).
[7]文密.Sobel算法在圖像檢測中的應用[J].信息科技,2008(6).