摘 要:提出新的像素標記算法,與以前的像素標記算法不同,該算法首先對目標點進行分類,然后根據(jù)不同的標記規(guī)則對不同的目標點進行標記。該算法不僅在算法復(fù)雜度上有所減少,只需一次掃描就能完成目標的描述,而且能夠得到目標的面積、重心和邊界坐標等信息。該算法已經(jīng)應(yīng)用于帶鋼表面缺陷檢測,具有快速、準確等特點。
關(guān)鍵詞:圖像處理; 二值圖像; 像素標記; 目標定位
中圖分類號:
TN911.7334; TP317.4
文獻標識碼:A
文章編號:1004373X(2012)05
0052
03
Objective orientation based on improved pixel mark algorithm
SONG Nan1, ZHAO Jing2
(1.Beijing Information Science and Technology University, Beijing 100101,China; 2.Xi’an University of Technology, Xi’an 710048, China)
Abstract:
A novel pixel mark algorithm is proposed and the algorithm is different. The novel algorithm frist classified the objective,and then marked different target according to different mark rules. The novel algorithm not only decreased the algorithm complexity, accomplished description of objective only one time, and gained the target area, center of gravity and boundary coordinates and other information. The algorithm has been used in the strip surface defects detection,and has the characteristics of fast speed and accuracy.
Keywords: image processing; binary image; pixel mark;objective orientation
收稿日期:20111021
基金項目:國家自然科學(xué)基金(61072151);陜西省自然科學(xué)基金(2009JQ8007)
0 引 言
對二值圖像中連通區(qū)域進行標記有兩種比較實用的方法:像素標記算法\\[1\\]和游程連通性算法。游程連通性分析法是通過分析由連續(xù)掃描線得到的游程連通性來標記目標的方法。其條件是在掃描前已經(jīng)形成了灰度相同的像素塊即游程。像素標記算法與游程連通算法不同的是,它不需要事先對圖像進行處理,就可以對二值圖像進行標記,過程極為簡便。考慮到實時性要求,本文只對像素標記法進行了研究。
近年來出現(xiàn)了一些改進的像素標記算法如擴展像素標記算法\\[2\\]、帶標記校正的像素標記算法\\[3\\]、快速目標描述方法\\[4\\]、一種改進的二值圖像的象素標記算法\\[5\\]、基于遞歸的二值圖像連通域像素標記算法\\[6\\]、帶標記矯正的二值圖象連通域像素標記算法\\[3\\]、一種基于鏈表的二值圖像像素標記改進算法\\[7\\]、基于等價對的圖像連通域標記算法\\[8\\]、一種圖像分割的快速目標描述方法 \\[4\\]。擴展像素標記算法需要進行兩次掃描才能完成。帶標記校正的像素標記算法對包含向上分叉的圖形不能在一次掃描中完成標記??焖倌繕嗣枋龇椒ń栌孟袼貥擞浀乃枷氪_定目標的邊界,但其算法較復(fù)雜,得到的目標特征信息較少。本文提出的算法只需要對圖像進行一次掃描就能完成目標的描述,對于復(fù)雜形狀的目標也能正確處理。通過存儲目標中像素的坐標,不僅達到了像素標記的目的,而且得到目標的面積、重心和邊界坐標等信息。該算法已經(jīng)用VC實現(xiàn),用于帶鋼表面缺陷檢測。
1 典型的像素標記算法
下面介紹典型的像素標記算法。在對圖像進行分割以后,得到了一幅二值圖像,為了檢測不同的目標區(qū)域,需要對灰度值為1的像素點進行標記,然后檢查鄰近像素間的連通性,將具有連通關(guān)系的像素點合并到同一個目標區(qū)域??紤]8連通的情況,根據(jù)以上建立的概念可按如下方法對圖像進行標記:對圖像逐像素掃描,假如當(dāng)前像素的灰度值為0,就移到下一個掃描位置。假如當(dāng)前像素的灰度值是1,檢查它左方、上方、左上和右上和四個近鄰像素(根據(jù)所采用的掃描次序,當(dāng)掃描到達當(dāng)前像素時這四個近鄰像素已被處理過了)。這四個像素灰度值和標記的組合中有四種情況要考慮:
(1) 它們的灰度值都是0,給當(dāng)前像素一個新的標記(根據(jù)已有信息,直到目前這是該連通區(qū)域第一次被掃描到);
(2) 它們中間只有一個灰度值為1,把該像素的標記賦給當(dāng)前像素;
(3) 它們的灰度值都為1且具有相同的標記,就將該標記賦給當(dāng)前像素;
(4) 它們的灰度值都為1但具有不同的標記,就將其中的一個標記賦給當(dāng)前像素并做個記號表明這兩個標記等價。
在掃描終結(jié)時所有灰度值為1的點都已有了標記但有些標記可能是等價的。此時所需做的就是將所有等價的標記對結(jié)合,對各個對賦一個不同的標記。然后第2次掃描圖像,將每個標記用它所在等價對的標記代替。
2 改進的像素標記算法
本文提出了一種改進型像素標記方法,該算法使像素標記在單次掃描中完成,而且能夠得到目標的面積、重心以及邊界坐標。在掃描之前,首先對圖像進行擴展,使圖像中的每個點都具有完整的8鄰域。對于二值圖像中的目標點,分成三種情況:第一種是開始點,它的左方、左上、上方、右上的點均為0;第二種是內(nèi)部點,它左方的點為1;第三種是邊界點,它左方的點為0,但其左上,上方,右上至少有一個點為1。
為了說明像素標記的過程,首先定義如下數(shù)據(jù)類型:
m:當(dāng)前像素點的行坐標,n:當(dāng)前像素點的列坐標;
E(m,n):當(dāng)前掃描像素點灰度值;
S(m,n):當(dāng)前像素點的目標標記;
Br(S(m,n)):當(dāng)前像素所屬標記的等效標記;
MS(m,n) (m,n):M用來存儲目標標記S(m, n)中像素點的坐標;
為了說明改進型像素標記算法的標記流程,首先介紹三種點的標記規(guī)則和有效目標標記的定義。
(1) 開始點標記規(guī)則
當(dāng)遇到一個開始點時,將其標記記為1,同時等效標記也為1,將該點的坐標存入數(shù)組M1中。后面開始點的標記依次加1。
(2) 內(nèi)部點標記規(guī)則
若當(dāng)前點為內(nèi)部點,該點的標記記S(m,n)等于S(m,n-1),并將該點的坐標記入數(shù)組MS(m,n )。進一步判斷,若上方為0,右上方為1,且右上方標記的等效標記和當(dāng)前點的標記不同,就令右上方點標記的等效標記Br(S(m-1,n+1))等于S(m,n),并將數(shù)組MS(m-1,n+1)并入數(shù)組MS(m,n )。
(3) 邊界點標記規(guī)則
首先判斷該點左上方是否為1,若為1,則當(dāng)前點的標記S(m,n)等于S(m-1,n-1)。并將當(dāng)前點的坐標寫入數(shù)組MS(m,n )。進一步判斷,若正上方為0且右上方點均為1,則令右上方點標記的等效標記Br(S(m-1,n+1))等于S(m,n),并將數(shù)組MS(m-1,n+1)并入數(shù)組MS(m,n )。
若左上方為0,正上方為1,則當(dāng)前點標記S(m,n)等于S(m-1,n),并將當(dāng)前點的坐標寫入數(shù)組MS(m,n )。
若左上方為0,正上方為0,右上方為1,則當(dāng)前點標記S(m,n)等于S(m-1,n+1),并將當(dāng)前點的坐標寫入數(shù)組MS(m,n )。
(4) 有效目標標記的定義
對圖像掃描完成后,找出那些沒有被合并的標記,即自身的標記號與它的等效標記相同,這些標記的存儲數(shù)組M中存儲了屬于該標記的所有點的坐標,根據(jù)這些坐標就可以計算出目標的邊界、重心和面積。
該算法只用一次掃描就能達到像素標記的目的,而且三種目標點有各自的標記規(guī)則,這些規(guī)則定義了像素標記和標記合并的原則,在掃描完后,要判斷哪些標記是有效標記,哪些標記被合并,同時計算出有效標記的邊界、重心和面積。
3 改進的像素標記法驗證
為了驗證算法的有效性,本文對復(fù)雜圖形的目標標記過程進行了分析,圖1給出了一個復(fù)雜圖形實例,該圖形包含了二值圖像中會遇到的大部分情況。
圖1 復(fù)雜圖形實例
下面就對圖1中圖形的像素標記過程進行說明:
(1) 從第一行進行掃描,像素點(1,3)滿足開始點的要求,令其目標標記為1,同時目標標記1的等效標記為1,將該點的坐標存入M1中。像素點(1,14)滿足開始點的要求,令其目標標記為2,同時目標標記2的等效標記為2,將該點的坐標存入M2中。
(2) 對第二行進行掃描,像素點(2,3)的標記與(1,3)點相同,同時將該點坐標存入M1中。像素點(2,5)是一個開始點,令其目標標記為3,同時目標標記3的等效標記為3,將該點坐標存入M3中,后面的像素做類似的處理。點(2,14)屬于標記2。
(3) 對第三行進行掃描,根據(jù)邊界點的標記規(guī)則,點(3,3)、(3,6)、(3,9)、(3,14)分別屬于標記1,3,2。
(4) 對第四行進行掃描,像素點(4,1)滿足開始點的要求,因此開始一個新的標記4,并令其等效標記為4,在點(4,2)處,目標標記1合并入目標標記4,使目標標記1的等效標記指向4。在帶點(4,5)處,目標標記3合并入目標標記4,目標3的等效標記指向4。從(4,9)開始的點屬于目標4。點(3,14)屬于目標2。
(5) 第五行的點(5,4)、(5,9)、(5,11)均屬于目標4,點(5,14)屬于目標2。
(6) 第六行的點(6,2)滿足開始點的要求,開始一個新的標志5,并令其等效標志為5,在點(6,3)處,目標標記4并入目標標記5,使目標4的等效標記為5,同時目標1和3的等效標記為4,故使目標1和3的等效標記指向5。在點(6,8)處由于目標4的等效標記指向5,不做合并,在點(6,13)處,目標2并入目標5,目標2的等效標記指向5,點(6,15)屬于目標5。
(7) 根據(jù)標記規(guī)則,點(7,5)和點(7,13)屬于目標5。
(8) 在點(8,1)處開始了一個新標記6,其等效標記為6,在點(8,4)處,目標5并入目標6,同時目標5的等效標記為6,考慮到目標1,2,3,4的等效標記為5,這里使它們的等效標記指向6,在點(8,12)處由于目標5的等效標記為6,故不做合并。
(9) 查看這六個標記的等效標記,只有第六個標記的等效標記與它自身序號相等,故圖中只包含一個目標。
前面介紹了改進型像素標記算法,并分析了其有效性。下面采用本文提出的算法和輪廓跟蹤算法、像素標記算法,分別對圖2所示帶鋼圖像中的三個缺陷進行定位,圖像大小為768×280像素。
從表1,表2可以看出,三種方法找到的目標邊界
坐標完全一樣,而改進型像素標記算法的處理速度更快,在有實時性要求的條件下該算法更有優(yōu)勢。在缺陷區(qū)域定位之后,根據(jù)目標邊界坐標就可以從原圖中提取缺陷區(qū)域圖像。
4 結(jié) 論
本文算法不僅在實時性上有優(yōu)勢,復(fù)雜度有所減小,而且通過實驗證明在圖像的缺陷區(qū)域定位之后,根據(jù)目標邊界坐標就可以從原圖中提取缺陷區(qū)域的圖像。
參 考 文 獻
[1]章毓晉.圖像分割[M].北京:科學(xué)出版社,2001.
[2]張新宇,劉廣智,李建勛,等.一種圖像分割的目標描述方法及實現(xiàn)[J].系統(tǒng)工程與電子技術(shù),2003,25(2):219222.
[3]張修軍,郭霞,金心宇.帶標記矯正的二值圖像連通域像素標記算法[J].中國圖象圖形學(xué)報,2003,8(2):198202.
[4]張慶,向健勇,趙小明,等.一種圖像分割的快速目標描述方法[J].紅外技術(shù),2004,26(6):8385.
[5]王亮,黃飛,馮少彤,等.一種改進的二值圖像像素標記算法[J].南京師范大學(xué)學(xué)報:工程技術(shù)版,2006,6(2):2325.
[6]徐正光,鮑東來,張利欣.基于遞歸的二值圖像連通域像素標記算法[J].人工智能及識別技術(shù),2006,32(24):186188.
[7]李偉,何強.一種基于鏈表的二值圖像像素標記改進算法[J].科技風(fēng),2008(14):5556.
[8]左敏,曾廣平,涂序彥,等.基于等價對的圖像連通域標記算法[J].計算機仿真,2011(1):1416.