摘 要: 本文通過分析作為一階梯度算子的理論基礎,得出可應用到實踐圖像分割中的一階微分算子、并通過VC++6.0加以實現(xiàn)。分析圖像分割結(jié)果,并對Robert算子,Sobel算子和Prewitt邊緣檢測算子進行了利弊分析。
關(guān)鍵詞: 一階微分算子 Robert算子 Sobel算子 Prewitt邊緣檢測算子
1.一階微分算子理論基礎
1.1Roberts邊緣檢測算子
Robert邊緣檢測算子模板是指:對角線方向像素做差。圖像邊緣點計算準確,圖像中的噪聲對該算子的邊緣干擾大。Robert邊緣檢測算子通過局部差分算子計算邊緣點。其計算公式如下[1]:
G[i,j]=|f[i,j]-f[i+1,j+1]|+|f[i+1,j]-f[i,j+1]|(1)
G[i,j]=[(f[i,j]-f[i+1,j+1])+(f[i+1,j]-f[i,j+1])](2)
其中G[i,j]表示邊緣檢測后坐標為(i,j)點的像素值,f[i,j]表示邊緣檢測前坐標為(i,j)點的像素值。Robert算子模板如下:
0 1-1 0100 -1
1.2Sobel邊緣檢測算子
離散信號與對應權(quán)系數(shù)求和過程稱為卷積。權(quán)系數(shù)矩陣一般為奇數(shù),大小與使用區(qū)域相同,此矩陣也稱為卷積核,使用區(qū)域中每一個像素與卷積核中對應系數(shù)相乘,乘積相加得出中心像素的新像素值。Sobel邊緣檢測算子如下:
ΔG=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)
ΔG=f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1)-f(i+1,j-1)-2f(i+1,j)-f(i+1,j+1)
得出兩個權(quán)系數(shù)矩陣模板如下:
-1 -2 -1 0 0 0 1 2 310-1-20-21 0-1
用這兩個矩陣做卷積,左側(cè)矩陣對水平邊緣敏感,右側(cè)矩陣對垂直邊緣敏感。得到兩個卷積值,兩個值中最大值作為中心點的邊緣幅度值。Sobel算子對于像素領(lǐng)域內(nèi)各位置坐了加權(quán),表示不同位置對該像素邊緣幅度值的影響大小,所以邊緣檢測效果更好。
1.3Prewitt邊緣檢測算子
Prewitt邊緣檢測算子的構(gòu)造方法與Sobel邊緣檢測算子相似,對于卷積核(系數(shù)矩陣)進行了改進,對于卷積核中德每一系數(shù),進行了權(quán)值平均化,表示區(qū)域內(nèi)位置的影響因子相似,其矩陣模板如下:
-1 -1 -1 0 0 0 1 1 1 10-110-110-1
對每一個像素點利用這兩個卷積核進行卷積運算,取最大值作為中心位置像素的邊緣幅度值輸出。
2.實驗結(jié)果
本文的實驗環(huán)境為:Intel(R)core(TM)2DuoCPU;實驗工具為:VC++6.0。圖1,圖2,圖3分別為Robert算子,Sobel算子和Prewitt算子的實驗對比圖。
實現(xiàn)步驟[2]:
(1)獲得原始圖像指針。
(2)開辟大小與原始圖像相同的新數(shù)據(jù)區(qū),初始化為全白。循環(huán)遍歷每個像素,用Roberts、Sobel、prewitt邊緣檢測算子模板計算該像素的邊緣幅度值。
?。?)將新數(shù)據(jù)區(qū)中的幅度數(shù)據(jù)復制到原圖數(shù)據(jù)區(qū)。
3.總結(jié)與展望
本文通過分析一階微分算子理論基礎,實現(xiàn)了其在圖像邊緣檢測上的應用,可見一階微分算子對一般的光學圖像的邊緣檢測效果是好的,但是一階導數(shù)的邊緣檢測器,如果所求的一階導數(shù)高于某一閾值,則確定該點為邊緣點。這樣做會導致檢測的邊緣點太多,而且對噪聲點會很敏感,我們會在以后的工作中通過實驗,尋找更為理想的算法,克服一階微分算子的缺點。
參考文獻:
?。?]段瑞玲,李慶祥,李玉和.圖像邊緣檢測方法研究綜述[M].光學技術(shù),2005,(03):95-99.
?。?]求實科技.VisualC++數(shù)字圖像處理典型算法及實現(xiàn).北京:人民郵電出版社,2006.