王井陽,劉 衛(wèi),張立巖,張繼蕾
(河北科技大學信息科學與工程學院,河北石家莊 050018)
紗線毛羽的多少是評價經(jīng)紗上漿效果好壞的一個重要指標,會對織物的外觀和手感造成很大影響。因此,對紗線毛羽的檢測及數(shù)量控制是十分必要的[1]。評價紗線毛羽的指標有毛羽長度、毛羽個數(shù)以及毛羽量。在紡織行業(yè)中,目前對紗線毛羽的檢測方法主要有人工目測法和借助專業(yè)工具的檢測方法。人工目測法具有對操作人員目力要求高、誤差較大和效率低等缺點;借助專業(yè)工具的檢測方法存在專用設(shè)備價格昂貴的缺點。
基于圖像處理的紗線毛羽檢測方法是以人工目測黑板法為基礎(chǔ)的,其主要流程是先將紗線等距離地纏繞在有參照線的黑板上,通過數(shù)碼照相機拍攝圖像并輸入到計算機中,獲得毛羽的采樣圖;然后對采樣圖進行一系列的圖像預(yù)處理工作(包括灰度變換、傾斜校正、去噪、銳化等),得到能清晰反映毛羽分布情況的二值圖,利用形態(tài)學運算強化紗線的邊緣;最后從形態(tài)學濾波處理后的二值圖中提取出紗線周長、面積等特征參數(shù),并進一步完成紗線毛羽的自動檢測[2-3]。筆者主要研究從形態(tài)學濾波處理后的二值圖中提取出特征參數(shù)并完成紗線毛羽的自動檢測過程,其他步驟在此不予討論。
紗線圖片經(jīng)過形態(tài)學濾波處理去噪聲后圖形如圖1所示。將紗線區(qū)域從背景中分離出來后,圖像中包含多個紗線連通區(qū)域,要獲得紗線的外部形狀特征,還需要對紗線區(qū)域的輪廓進行跟蹤和提取。由于常用的輪廓跟蹤算法[4]只是針對一個區(qū)域的圖像信息進行特征提取而紗線圖像中又包含多個紗線連通區(qū)域,故筆者提出一種能同時處理多個紗線區(qū)域毛羽特征提取的多區(qū)域輪廓跟蹤算法,以提高特征參數(shù)提取的效率。
圖1 形態(tài)學濾波處理后的毛羽二值圖像Fig.1 Binary image of hairiness after morphological filtering
輪廓跟蹤也稱邊緣點連接,是指從圖像上的一個邊緣點出發(fā),依次搜索邊緣點鄰域而確定下一個新的邊緣點,并將它們連接進而逐步檢測出邊界的方法。鏈碼法輪廓跟蹤算法是一種常用的輪廓跟蹤算法[5]。
鏈碼法輪廓跟蹤算法原理是按照從左到右、從上到下的順序搜索圖像,找到圖像的第1個目標點(像素值為1的點),此點是輪廓最左上方的邊界點,記為A點。A點的右、右下、下、左下4個鄰點中至少有1個是輪廓點,記為B點。從B點的右鄰接像素開始,按逆時針的順序依次找出相鄰點中的輪廓點C點。如果C點就是A點,則表明搜索完成;否則從C點繼續(xù)搜索,直到找到A點為止。輪廓點的判斷標準是它的4鄰接域是否都不是目標點。
鏈碼法輪廓跟蹤算法的不足之處如下:1)這種算法要對區(qū)域中的每個邊界點的8鄰域進行跟蹤檢測,計算量大,檢測速度比較慢;2)每次只能對1個區(qū)域進行輪廓跟蹤,不能1次實現(xiàn)對多個區(qū)域的輪廓跟蹤。
輪廓提取的結(jié)果直接關(guān)系到特征提取的有效性。為了提高紗線特征提取效率,實現(xiàn)對圖像中多個紗線區(qū)域的輪廓提取,筆者在改進上述鏈碼法輪廓跟蹤算法的基礎(chǔ)上,提出了多區(qū)域輪廓跟蹤算法。
本算法的原理是在二值圖像的掃描過程中,找到第1個紗線區(qū)域的輪廓點時,即執(zhí)行輪廓跟蹤算法,在輪廓跟蹤過程中,標記當前紗線區(qū)域輪廓上的像素點(將輪廓點的灰度值改為當前區(qū)域的序號值),并記錄當前輪廓點的坐標、鏈碼等信息;完成當前紗線區(qū)域的輪廓跟蹤后,需要對跟蹤完成的紗線區(qū)域進行填充操作,即將區(qū)域內(nèi)部的像素點進行填充標記(同樣將區(qū)域內(nèi)部點的灰度值改為當前區(qū)域的序號值);同時,將區(qū)域序號值加1。這樣就可以排除干擾,準確地定位到下一個紗線區(qū)域的輪廓上,提取新的區(qū)域輪廓[6-7]。如此重復,直到紗線毛羽圖像掃描完成。
設(shè)二值圖像目標點的灰度值為TP,背景的灰度值為BP,輪廓區(qū)域序號初值為N(N≠TP,N≠BP),用CP代表當前掃描點的像素值,則紗線毛羽二值圖像的多區(qū)域輪廓跟蹤算法的步驟如下。
1)從二值圖像的左上角開始逐行掃描圖像,當掃描到像素點的值為TP時,記下當前點的坐標值(xN,yN),并把當前像素點的灰度標記為N,以此點為輪廓跟蹤的起點。
2)從當前點出發(fā),定義初始搜索方向為左上方;如果當前點左上方的像素灰度值為TP,則該點為紗線區(qū)域的邊界點,否則搜索方向順時針旋轉(zhuǎn)45°。這樣一直搜索下去,直到找到第1個灰度值為TP的點。為防止重復跟蹤,記錄下當前輪廓點的灰度標記值N、坐標值、鏈碼值等數(shù)據(jù)。然后以新找到的輪廓點為搜索起點,在當前的搜索方向上逆時針旋轉(zhuǎn)90°。
3)重復執(zhí)行步驟2),直到返回最初的邊界起始點(xN,yN)。
4)將當前輪廓區(qū)域的所有像素的值都賦為BP或者N,即對已跟蹤過的輪廓進行區(qū)域填充。
5)跟蹤標記N++,從點(xN,yN)開始重復執(zhí)行以上步驟,直到跟蹤完成圖像中的所有紗線區(qū)域。
紗線毛羽二值圖像的多區(qū)域輪廓跟蹤算法流程圖如圖2所示。
評價紗線毛羽的指標有毛羽長度、毛羽個數(shù)以及毛羽量。毛羽的長度反映在二維圖像上即圖像的周長和面積。在使用基于多區(qū)域輪廓跟蹤算法提取紗線的輪廓后,對紗線毛羽圖像的周長、面積進行提取。
二維平面物體的周長定義為包圍物體而不含于物體的邊界長度。紗線區(qū)域的周長指紗線區(qū)域的輪廓長度,用P表示。
筆者用8連通鏈碼的周長來計算紗線區(qū)域的周長,8連通鏈碼周長不僅計算水平、垂直方向的鏈碼點數(shù),還計算了對角線方向的像素長度,接近于輪廓的實際周長。設(shè)像素的邊長為單位1,將記錄在紗線數(shù)據(jù)結(jié)構(gòu)中的鏈碼值取出,把各個輪廓的奇數(shù)鏈碼個數(shù)Nd的倍和偶數(shù)鏈碼個數(shù)Ne相加,即可求出各個紗線區(qū)域輪廓的周長,其計算公式為P=Nd+Ne。
圖2 多區(qū)域輪廓跟蹤算法流程圖Fig.2 Flow chart of multi-region contour tracking algorithm
紗線區(qū)域的面積用來度量紗線的總尺寸,它描述了紗線輪廓區(qū)域的大小。紗線區(qū)域的面積S可通過對屬于紗線區(qū)域的像素個數(shù)進行統(tǒng)計達到。
Green定理表明,在X-Y平面中的一個封閉曲線包圍的面積S由其輪廓積分給定,公式為
將其進行離散后變?yōu)?/p>
其中Nb為邊界點的像素的個數(shù)。
1)毛羽量的計算
毛羽量用H表示,圖像中標準紗線區(qū)域的面積為St=S1+S3+S5+S7+S9;帶有毛羽的紗線區(qū)域的面積為Sh=S2+S4+S6+S8+S10,毛羽量的計算公式為H=Sh-St。相對毛羽率的計算公式為R=(Sh-St)/St。
2)毛羽個數(shù)的計算
檢測圖像中不同長度的毛羽的個數(shù),首先需要確定待檢測紗線區(qū)域的個數(shù),再檢測每個紗線區(qū)域內(nèi)的毛羽個數(shù),最后將各個紗線區(qū)域內(nèi)的毛羽個數(shù)相加,即得所有毛羽的個數(shù)。
檢測標準紗線位置坐標的過程如下:找到圖像起始像素,掃描圖像第1行,當遇到像素值為1的點時計數(shù)器加1(計數(shù)器用來記錄要檢測的紗線區(qū)域的個數(shù)),繼續(xù)掃描,若連續(xù)白色像素的個數(shù)大于設(shè)定值,則確定此線為紗線,再判斷其是否為標準紗線,若是則記錄標準紗線的地址,直到第1行掃描完畢。這樣就可得出所有標準紗線的位置及要檢測的紗線區(qū)域的個數(shù)。標準紗線定位流程圖如圖3所示。
毛羽計數(shù)算法流程可描述如下:以標準紗線橫坐標與毛羽待檢測長度之和為橫坐標,掃描該列圖像,若存在連續(xù)目標像素則表明存在1條毛羽,將毛羽個數(shù)加1,同時紗線檢測次數(shù)減1,直到檢測次數(shù)為0,即所有紗線區(qū)域都檢測完畢。通過累加各個紗線區(qū)域的毛羽個數(shù),得出待檢測紗線的毛羽個數(shù)。
3)毛羽指數(shù)的計算
用I表示毛羽指數(shù),毛羽指數(shù)的計算公式為I=Sh/St。
本實驗將待檢測紗線和參照紗線均勻纏繞于黑板上,待檢測紗線與參照線的固定間距為3mm,紗線長100mm,待檢測的紗線條數(shù)為36。采用佳能IXUS70數(shù)碼相機對紗線進行拍照,圖片格式為JPEG,尺寸為2 048pix×1 536pix。背景黑板的規(guī)格為250mm×100mm×6mm。為清晰地顯示紗線毛羽形態(tài),本文圖只顯示了實際圖像的截取部分。
對形態(tài)學濾波處理后的毛羽二值圖像(圖1)采用多區(qū)域輪廓跟蹤算法輪廓提取后得到紗線輪廓,如圖4所示。
對圖4中的紗線進行各特征參數(shù)提取得到毛羽量為0.51,毛羽指數(shù)為1.51,毛羽個數(shù)如表1所示。
圖3 標準紗線定位流程圖Fig.3 Flow chart of standard yarn positioning
圖4 紗線輪廓Fig.4 Yarn contour
人工目測是用照布鏡和曲線尺數(shù)出4cm長度內(nèi)的毛羽個數(shù),計算機測量的數(shù)據(jù)采用浮點數(shù)運算。檢測結(jié)果與目測結(jié)果之間的誤差率(ˉδ)計算公式為
式中:n為紗線區(qū)域的個數(shù);xi為檢測的結(jié)果數(shù)據(jù);yi為人工目測的數(shù)據(jù)。
表1 檢測結(jié)果對比Tab.1 Comparison of test results
根據(jù)式(3)可以計算出誤差率ˉδ=3.31%,在誤差允許的范圍(±5%)內(nèi),檢測的結(jié)果與人工測量的結(jié)果是一致的,達到實際檢測的要求。
實驗證明,多區(qū)域輪廓跟蹤算法不但可以對任意條紗線進行輪廓跟蹤及特征提取,而且得到的邊界曲線封閉連續(xù),只有單像素寬。
提出了多區(qū)域輪廓跟蹤算法,該算法對紗線的幾何特征提取具有較高的精度和適應(yīng)性,解決了必須將圖像中的單條毛羽圖像分割取出后才能進行輪廓跟蹤的問題,實現(xiàn)了同時對多個紗線區(qū)域進行輪廓跟蹤和提取。與人工目測黑板法相比,該方法提高了紗線毛羽的檢測精度;與單區(qū)域輪廓跟蹤算法相比,該方法提高了紗線毛羽的檢測效率。
[1] 盧 明,劉一萍.紗線毛羽圖像的二值化處理及其 Matlab實現(xiàn)[J].山東紡織科技(Shandong Textile Science &Technology),2009(2):37-39.
[2] 段培超,趙志強,高國明.改進的形態(tài)學航空圖像邊緣檢測算法[J].河北科技大學學報(Journal of Hebei University of Science and Technology),2010,31(5):433-436.
[3] WANG Xiao-hong,WANG Jing-yang,ZHANG Ji-lei,et al.Study on the detection of yarn hairiness morphology based on image processing technique[J].International Conference on Machine Learning and Cybernetics,2010,5:2 332-2 336.
[4] 于紀征,孔曉東,曾貴華.基于均值漂移和邊緣檢測的輪廓跟蹤算法[J].計算機仿真(Computer Simulation),2008,25(6):224-227.
[5] 劉梅華,汪 東,柳惠秋.一種改進的輪廓跟蹤算法[J].機械設(shè)計與制造(Machinery Design &Manufacture),2008(5):45-47.
[6] 王玉亮.基于機器視覺的玉米種子品種識別與檢測研究[D].泰安:山東農(nóng)業(yè)大學,2008.
[7] 劉 禾.數(shù)字圖像處理及應(yīng)用[M].北京:中國電力出版社,2005.