馮彥銘,謝家龍,李林升,林國湘
(南華大學(xué) 機(jī)械工程學(xué)院,湖南 衡陽 421001)
在圖像測量中,常對圖像的邊界進(jìn)行跟蹤提取,得到目標(biāo)區(qū)域的邊緣坐標(biāo)點(diǎn),從而獲得目標(biāo)區(qū)域的面積和周長等信息,而目標(biāo)區(qū)域的這些信息是識別目標(biāo)的一個(gè)非常重要的特征,需要根據(jù)目標(biāo)區(qū)域的面積、周長等相關(guān)特征識別目標(biāo)。因此,目標(biāo)區(qū)域面積及周長的精確計(jì)算對準(zhǔn)確識別目標(biāo)區(qū)域具有十分重要的意義。
針對任意封閉區(qū)域幾何參數(shù)的測量,人們做了大量的研究工作[1-5]。在文獻(xiàn)[6]中,采用Freeman鏈碼來計(jì)算圖像中多個(gè)區(qū)域面積,F(xiàn)reeman輪廓跟蹤時(shí)需要對每個(gè)邊界像素(8個(gè)點(diǎn)鄰域點(diǎn))進(jìn)行判斷,計(jì)算時(shí)間較長;文獻(xiàn)[7]中提出的方法,首先利用邊界點(diǎn)的前級矢量與次級矢量判斷出邊界內(nèi)像素,然后,將邊界內(nèi)像素總數(shù)與邊界像素總數(shù)相加,所得總和再乘像素面積得到測量區(qū)域的面積,此方法是一種簡單、可靠、有效的方法,但計(jì)算方法比較復(fù)雜,計(jì)算量比較大,不實(shí)用。針對上述問題,本文提出了基于八鄰域跟蹤的目標(biāo)區(qū)域幾何參數(shù)測量方法,該方法邊緣跟蹤速度快、算法實(shí)現(xiàn)容易、計(jì)算結(jié)果較準(zhǔn)確。
輪廓跟蹤的方法主要有掃描線輪廓法、Freeman鏈碼表示法[8]和八鄰域法等。掃描線輪廓法簡單,容易實(shí)現(xiàn),就是逐行按列對圖像進(jìn)行掃描,每找到一個(gè)目標(biāo)點(diǎn)就記下該點(diǎn)坐標(biāo),該方法提取的輪廓信息不是按輪廓的順序記錄,且效率較低,并對后續(xù)的數(shù)據(jù)處理造成困難,一般很少采用此方法做跟蹤測量。Freeman鏈碼表示法是用中心像素指向它的八鄰域點(diǎn)來定義的,輪廓的跟蹤根據(jù)鏈碼的方向進(jìn)行,雖然,避免了對所有像素點(diǎn)的掃描,使輪廓跟蹤效率得到了一定的提高,但是需要對每個(gè)邊界像素周圍的8個(gè)點(diǎn)進(jìn)行判斷,計(jì)算量仍比較大。因此,為提高跟蹤效率、減少運(yùn)算時(shí)間,本文采用八鄰域輪廓跟蹤方法對目標(biāo)邊緣進(jìn)行輪廓跟蹤。
在圖像處理中,圖像上某個(gè)像素的點(diǎn)有8種可能的方向點(diǎn)與其相接,如圖1所示,將這8個(gè)方向鏈碼分別命名為1、2、3、4、5、6、7、8,分別表示像素點(diǎn)的正右方、右上方、正上方、左上方、正左方、左下方、正下方、右下方,如圖2所示。
圖1 八連接
圖2 鏈碼定義
為了對目標(biāo)區(qū)域邊界進(jìn)行編碼,首先設(shè)定目標(biāo)區(qū)域?yàn)槎祱D象,設(shè)前景為“0”,背景為“1”。選如圖3所示為目標(biāo)邊界,對其作八鄰域跟蹤,其步驟如下:①按照從左到右、從下到上的掃描方式對目標(biāo)區(qū)域邊緣像素點(diǎn)進(jìn)行搜索檢查,將最先檢查出來的黑色像素點(diǎn)作為輪廓跟蹤的第一個(gè)輪廓點(diǎn)O,若在圖像中搜索不到黑色像素點(diǎn),則搜索結(jié)束;②從輪廓起始點(diǎn)O開始,以O(shè)像素點(diǎn)正右方(即‘1’方向)作為初始搜索方向進(jìn)行搜索,如果‘1’方向的點(diǎn)是黑點(diǎn),則為輪廓點(diǎn),否則搜索方向順時(shí)針旋轉(zhuǎn)45°,即搜索方向值減1,如此繼續(xù)搜索,一直到找到黑色像素點(diǎn)為止;③記錄該黑點(diǎn)的坐標(biāo),并將其作為新的搜索起始點(diǎn),在當(dāng)前的搜索方向基礎(chǔ)上逆時(shí)針旋轉(zhuǎn)90°,即搜索方向值加2;④用同樣的方法繼續(xù)搜索下一個(gè)黑色像素點(diǎn),直到返回到第一輪廓點(diǎn)O。
由于理論上輪廓是連續(xù)的,因此在O像素點(diǎn)八鄰域方向中肯定能搜索到黑色像素點(diǎn),而且也只有在這個(gè)方向上才可能有輪廓像素點(diǎn)存在。
圖3 邊界圖
為驗(yàn)證上述八鄰域跟蹤算法的跟蹤效果,取CT掃描得到的汽車輪轂切片外邊界為跟蹤對象,進(jìn)行邊界跟蹤處理,如圖4所示。
圖4 輪轂邊界跟蹤處理
由圖4可知,用本文的八鄰域跟蹤算法可以有效、準(zhǔn)確地跟蹤出輪轂邊界,跟蹤后得到一系列有序連續(xù)的邊界坐標(biāo)點(diǎn),再利用幾何計(jì)算公式,計(jì)算得到目標(biāo)區(qū)域的周長和面積。測量流程圖見圖5。
在目標(biāo)區(qū)域的測量中,常用像素累加法,該方法首先在二值圖像上進(jìn)行輪廓跟蹤得到目標(biāo)的邊界,對邊緣進(jìn)行排序,并得到每個(gè)邊緣點(diǎn)的方向,以確定計(jì)算周長時(shí)所乘的系數(shù)。依次累加乘以系數(shù)以后的邊緣點(diǎn),便得到目標(biāo)的周長,累加像素目標(biāo)區(qū)域得到面積。但此方法計(jì)算耗時(shí)、精度低,受像素的分辨率及邊緣提取算法的精度限制。因此,本文提出用格林公式和歐式距離公式計(jì)算目標(biāo)區(qū)域的面積S和周長L。歐氏距離公式為:
格林公式為:
公式(2)經(jīng)離散化后為:
其中:N為黑色像素點(diǎn)數(shù)。
圖5 測量流程圖
為了驗(yàn)證本文方法的測量精度,構(gòu)造一幅164×164像素的仿真圓,如圖6所示。圓的直徑D為108像素,圓面積S=π(D/2)2=9 156.24(像素)2,周長L=πD=339.12(像素)。采用本文的八鄰域跟蹤算法對該仿真圓邊緣進(jìn)行跟蹤,得到一系列的有序邊緣坐標(biāo)點(diǎn)(圖6(b));再利用歐式距離公式和格林公式計(jì)算仿真圓的周長和面積,見表1。
圖6 輪廓跟蹤圖
表1 仿真圓的周長與面積
從表1可知,采用本文的測量方法測量精度較高,測量誤差小。
周長和面積的計(jì)算在目標(biāo)識別和圖像分析中運(yùn)用廣泛,本文所提出的基于八鄰域跟蹤算法的任意形狀封閉區(qū)域幾何尺寸測量方法,可以實(shí)現(xiàn)任意封閉單連通區(qū)域的測量。然而,本測量方法只能測量單連通區(qū)域的幾何參數(shù),如何在保證測量精度的前提下,實(shí)現(xiàn)多連通區(qū)域的測量是下一個(gè)研究的重點(diǎn)。
[1] 黨宏社,洪英,郭琴.基于圖像處理的不規(guī)則形體面積測量系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2010(7):1507-1511.
[2] 高榮華,張有會,曹清潔.頂點(diǎn)鏈碼表示區(qū)域的面積計(jì)算[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(8):106-108.
[3] 牛珂,何東健.基于圖像處理的植物葉片參數(shù)測量系統(tǒng)[J].農(nóng)村經(jīng)濟(jì)與科技,2011(6):205-206.
[4] 陳優(yōu)廣.邊界跟蹤、區(qū)域填充及鏈碼的應(yīng)用研究[D].上海:華東師范大學(xué),2006:18-32.
[5] 王厚大.一種計(jì)算任意封閉形狀面積的方法[J].南京郵電學(xué)院學(xué)報(bào),1997,17(4):23-25.
[6] 吳元敏.基于Freeman鏈碼的圖像中多個(gè)區(qū)域面積的計(jì)算方法[J].計(jì)算機(jī)工程與應(yīng)用,2008(15):199-201.
[7] 李祥林,李月卿,王昌元,等.一種基于矢量分析的圖像面積測量方法[J].泰山醫(yī)學(xué)院學(xué)報(bào),2002(1):23-25.
[8] 于洋,劉二莉,周鐵濤,等.邊界追蹤及Freeman碼在定量金相中的應(yīng)用[J].北京航空航天大學(xué)學(xué)報(bào),2004(8):767-770.