邊緣圖像連通區(qū)域標記的算法研究和SoPC實現(xiàn)
圖1中,假設三個目標點的傳遞順序是P0到P5,P5再到P02,則P5就是走向拐點。
要改善連通性,可以增大搜索范圍,如增大到7×7范圍。這樣雖然在一定程度上改善了連通性,但是會引入更多的干擾點。而本文的思路是:首先按照上述8方向鄰域生長算法搜索連通區(qū)域,同時記錄邊緣“端點”,然后通過比較各個區(qū)域的端點,將端點較近的兩個區(qū)域合并。結(jié)合前文的分析,本文認為邊緣端點包括3類:區(qū)域起點;邊緣末端;邊緣拐點。這樣得到的端點個數(shù)少,包含了絕大部分的“斷點”。通過不斷比較各個區(qū)域的端點,相近則將區(qū)域合并,最終得到合并后的標記圖像。
該方法實質(zhì)上是在小尺度內(nèi)搜索連通區(qū),并利用得到的邊緣端點在大尺度內(nèi)進行區(qū)域合并,既不引入更多的雜點,又改善了標記圖像的連通性,并在保證區(qū)域合并正確率的同時,提高了合并效率。
2 區(qū)域標記及合并的SoPC實現(xiàn)
本文以FPGA為核心,利用SoPC技術,實現(xiàn)了對320×240圖像的8方向生長連通區(qū)域標記。系統(tǒng)使用FPGA邏輯硬件進行邊緣檢測[3],使用NiosII軟核處理器進行連通區(qū)域標記,用Avalon總線將兩者結(jié)合起來,實現(xiàn)了硬件加速,軟硬件協(xié)同工作,既提高了實時性又保證了靈活性。
2.1 SoPC系統(tǒng)的結(jié)構(gòu)設計
系統(tǒng)結(jié)構(gòu)圖如圖3所示,主要模塊的功能簡述如下:
(1)NiosII CPU模塊。該模塊是整個系統(tǒng)運算和調(diào)度的中心,完成系統(tǒng)工作流程的控制;圖像處理中區(qū)域標記和區(qū)域合并算法的實現(xiàn);圖形用戶接口(GUI)的實現(xiàn)。
(2)Image模塊。圖像采集部分負責按照320×240大小采集攝像頭的數(shù)據(jù),由DMA控制器通過Avalon總線將原始圖像數(shù)據(jù)存儲到DDR SDRAM中。邊緣檢測部分同步地將原始圖像數(shù)據(jù)邊緣化,生成邊緣圖像數(shù)據(jù),并通過DMA控制器和Avalon總線存儲到DDR SDRAM中。
(3)Display模塊。負責驅(qū)動LCD液晶顯示屏顯示原始圖像、標記圖像以及處理信息。本文引用地址:http://www.ex-cimer.com/article/187479.htm
2.2 區(qū)域標記及合并的算法實現(xiàn)
圖像處理過程分為連通區(qū)域標記、區(qū)域合并和區(qū)域排序三步。
(1)連通區(qū)域標記:按照改進后的8方向鄰域生長算法進行連通區(qū)域標記,為每個連通區(qū)分配一個鏈表數(shù)組元素,用鏈表記錄該連通區(qū)的目標點和端點。
(2)區(qū)域合并:逐個比較任意兩個連通區(qū)域的端點鏈表,在大尺度范圍內(nèi)(本文采用9×9范圍),若其中有相鄰的端點,則合并這兩個連通區(qū)。
(3)區(qū)域排序:按照目標點的個數(shù),從大到小對合并后的連通區(qū)域排序,取前N個目標點數(shù)大于X的連通區(qū)域作為后續(xù)特征提取的對象(本文N的最大取值為10,X取值20),其余的視為干擾去掉。取形狀較大的N個連通區(qū)進行下一步的特征提取,可以節(jié)省處理時間。
3 實驗結(jié)果及分析
本文使用Altera公司的高性價比CycloneIII系列的FPGA EP3C25F324C8。SoPC系統(tǒng)共用邏輯單元8916/24624(36%),寄存器5 415個,引腳101個,片內(nèi)SRAM位數(shù)421 248/608 256(69%),內(nèi)置乘法器4個,PLL鎖相環(huán)1個。系統(tǒng)時鐘為100 MHz,NiosII軟核處理器的性能為113 DMIPS。
實驗結(jié)果如圖4所示。圖4(a)為實驗用開發(fā)板和攝像頭,圖4(b)、(c)、(d)是不同圖像在LCD液晶屏上顯示的實驗結(jié)果。顯示分為三部分:左側(cè)上部為原始灰度圖像,大小為320×240;左側(cè)下部為標記圖像(不同區(qū)域由不同顏色顯示),大小為320×240;右側(cè)為處理信息,大小為480×480。處理信息包括:Connection Num為連通區(qū)域個數(shù);Merge Num為合并后的區(qū)域數(shù);Region Num為排序后的區(qū)域數(shù);Process Time為圖像處理時間,單位為ms。
實驗結(jié)果表明,本文算法得出的標記圖像結(jié)果正確、邊緣清晰、去掉了雜點、提高了區(qū)域的連通性。在SoPC系統(tǒng)上實現(xiàn)時,對復雜圖像的處理速度約30幀/s,滿足了實時性要求。
本文在SoPC系統(tǒng)中,將提出的基于目標像素鄰域的8方向生長區(qū)域標記算法和基于邊緣端點的區(qū)域合并算法成功地予以實現(xiàn)。實驗結(jié)果表明了算法的有效性和實時性。基于SoPC技術的圖像處理系統(tǒng),軟硬件協(xié)同工作,提高了系統(tǒng)的并行性和靈活性,便攜性好,成本低。
參考文獻
[1] HE Lifeng,CHAO Yuyan,SUZUKI K.Fast connected-component labeling[J].Pattern Recognition,2009,42(9):1977-1987.
[2] HU Qingmao,QIAN Guoyu.Fast connected-component labelling in three-dimensional binary images based on iterative recursion[J].Computer Vision and Image Understanding,2005,99(3):414-434.
[3] 謝昭莉,白穎杰.Prewitt圖像邊緣檢測及邊緣細化的FPGA實現(xiàn)[J].電子技術應用,2010,36(6):39-42.
評論