孫巧妍, 陳祥光, 劉美娜, 孫玉梅, 辛斌杰
(1. 煙臺南山學院 工學院, 山東 煙臺 265713; 2. 北京理工大學 化學與化工學院, 北京 100081)
在紡織行業(yè)的實際生產中,對紗線的質量檢測及紗線密度的測量均需要檢測并識別紗線主體。目前,國內外學者針對紗線毛羽進行了很多關于數字圖像處理方面的研究,以電子儀器測量以及圖像處理代替人工測量。經過十幾年的研究,數字圖像處理紗線主干檢測技術得到了快速發(fā)展。姬建正等[1]提出了一種首先采用二維自適應維納濾波進行預處理、然后進行基于遺傳算法的二維最大熵法閾值化和形態(tài)學運算的數字圖像處理方法,方珩等[2]提出了一種包括灰度變換、背景處理、圖像增強去噪分割、動態(tài)閾值分割、傾斜糾正等手段的新型紗線毛羽圖像特征識別算法。文獻[3-5]也在這方面作了很多研究,但這些方法在算法難易程度、運算速度、識別結果方面都有待于進一步研究。
本文提出了一種先對預處理后的數字圖像進行毛羽識別判斷及圖像補償,然后對補償后的圖像進行自適應中值濾波運算的方法,去除原圖像中的噪聲和毛羽,保留紗線主體部分,2步完成紗線主體圖像的提取,相比于以往的方法,本文算法相對簡單,運算速度快。
本文研究采用的圖像采集設備是Epson Perfection V850 Pro 底片膠片A4幅面影像掃描儀,采集圖像所用到的紗線來源于南山集團精紡呢絨總廠2017年4月某批次產品,使用的處理軟件是MatLab7.0及以上版本。采集的圖像分為2類,一類是黑色背景白色紗線,另一類是白色背景黑色紗線。設備直接采集的是RGB彩色圖像,黑色背景橫向紗線圖像矩陣大小為400×506×3,黑色背景縱向紗線圖像矩陣大小為500×1 760×3,白色背景黑色紗線圖像矩陣大小為800×800×3。毛羽識別處理只需識別并去除毛羽部分,為后續(xù)的紗線直徑及紗線密度識別打下基礎,而對毛羽顏色識別不做要求。實際上RGB圖像在存儲黑或白圖像時三維數據差別不大,因此直接采用原數據矩陣中的第1層即R數據進行降維處理,處理后圖像變?yōu)榛叶葓D像,大小為400×506、500×1 760和800×800。降維后的灰度圖像既含有噪聲又有毛羽,這二者均影響對紗線主體的判斷。圖1示出一張黑色背景白色紗線的原始采集圖像。二值化預處理后,單純使用窗口尺寸不超過7的自適應中值濾波后圖像如圖2(a)所示,圖2(b)為使用3×3的方形結構元對圖像進行膨脹腐蝕結合操作處理后的圖像。
圖1 黑色背景白色橫向紗線原始圖像Fig.1 Black background white transverse yarn original image
圖2 使用自適應中值濾波和膨脹腐蝕操作處理后的圖像Fig.2 Images processed by adaptive median filtering (a) and by inflation and corrosion operations (b)
由圖2(a)可看出,單純使用自適應中值濾波,圖像沒有明顯變化,這是因為自適應中值濾波算法處理椒鹽噪聲效果很明顯,而對毛羽的處理則沒有效果。由圖2(b)可看出,單純使用膨脹與腐蝕操作的結合可以將毛羽去除,但紗線主體的圖像相比于原圖有明顯的模糊且邊界不清晰。毛羽是實際存在的物體,不同于椒鹽噪聲、椒粒噪聲或者白噪聲,因此應該研究一種算法只去除毛羽和噪聲部分而保留紗線主體部分的清晰圖像。
由于采集的黑色背景和白色背景2類圖像中紗線毛羽呈現的灰度值和形態(tài)不用,為盡可能簡單快速地識別并處理毛羽,針對2種不同情況采取的識別算法也不同。
黑色背景白色紗線的圖像是常見的紗線采集圖像,在這類圖像中,由于毛羽相比于紗線主體要細很多,圖像表現出紗線主體為白色而毛羽部分呈現灰白色的特點,即毛羽部分的灰度與紗線主體部分的灰度明顯有差異。針對毛羽圖像的這個特點,采取灰度變閾值識別來判斷毛羽部分的像素位置。
取整幅圖像中灰度最大的N個和最小的N個值,然后各自取其均值作為識別算法中的最大灰度和最小灰度值。
式中:D1(1,N)為最大值矩陣;D2(1,N)為最小值矩陣;Gmax為最大灰度均值;Gmin為最小灰度均值。然后選取適當的閾值作為毛羽部分灰度識別的灰度值上限和下限。
h=Gmin+(Gmax-Gmin)×λh
l=Gmin+(Gmax-Gmin)×λl
式中:h為灰度值上限;l為灰度值下限;λh為灰度值上限權值;λl為灰度值下限權值,且0<λl<λh<1。依次遍歷圖像中的所有像素點,如果圖像灰度值x(i,j)處于(l,h)區(qū)間,則判斷該像素為紗線毛羽,需要補償??蛇x擇圖像黑色背景部分的灰度值作為補償值,將該灰度值替換已識別出的原圖像中的毛羽像素。
采用上述算法進行仿真,圖像矩陣大小為400×506,將采集的圖像調入MatLab,經實驗驗證,取N=10,λl=1/6,λh=1/2,補償灰度值為為l-(Gmax-Gmin)×1/17時,處理橫向紗線的仿真結果較好,如圖3所示。圖4(a)為黑色背景縱向紗線原始采集圖,二值化后圖像矩陣大小為500×1 760,處理結果如圖4(b)所示。由圖3和圖4(b)可看出,使用灰度變閾值識別補償算法后,圖像中的毛羽大部分被去除而紗線主體部分圖像保存完好。
圖3 黑色背景橫向紗線補償處理后的圖像Fig.3 Image after black background transverse yarn compensation
圖4 黑色背景縱向紗線補償處理前后的圖像Fig.4 Images of black background longitudinal yarn compensation. (a)Original image;(b)Image after processing
圖5示出是采集到的一副白色背景黑色紗線的數字圖像,圖像中毛羽的灰度值不同于黑色背景時的情況,毛羽部分的灰度幾乎與紗線主體部分的灰度相同,即毛羽部分不再是“灰色”而是“黑色”。若仍采用前一種方法則找不到合適的λl和λh值來檢測出毛羽部分的像素,即采用灰度變閾值識別補償算法對該情況下的毛羽進行判別毫無效果。
圖5 白色背景黑色紗線原始圖像Fig.5 White background black yarn original image
通過圖像可明顯看到毛羽雖然很“黑”,但與紗線主體相比卻很“細”。雖然毛羽的形態(tài)各異,但毛羽所在位置的 “上下”或者“左右”臨近幾個像素變?yōu)楸尘盎叶戎?。根據這個特點,可通過一定像素半徑內垂直方向灰度變化值超過一定閾值的方法來判斷該像素點為毛羽區(qū)域。
如果滿足下述2個關系式中的一個,則可判斷該點為毛羽區(qū)域的一點。
Himg(i-r,j)-Himg(i,j)>Hl&&Himg(i+r,j)-Himg(i,j)>Hl
Himg(i,j-r)-Himg(i,j)>Hl&&Himg(i,j+r)-Himg(i,j)>Hl
式中:r為判斷窗口半徑;Himg(i,j) 為圖像中某點的灰度值;Himg(i-r,j) 為圖像中某點左方第r個像素的灰度值;Himg(i+r,j) 為圖像中某點右方第r個像素的灰度值;Himg(i,j-r) 為圖像中某點上方第r個像素的灰度值;Himg(i,j+r) 為圖像中某點下方第r個像素的灰度值;Hl為灰度變化閾值。
當判斷出該像素屬于毛羽區(qū)域后,就可以用背景灰度值進行補償:
圖6 垂直方向識別及推抹算法流程圖Fig.6 Flow chart of vertical direction recognition and pushing algorithm
式中:c為灰度補償值。
判斷窗口半徑r應從1開始逐漸增大,每當r增加1時,前一輪補償處理后的數據又可為下一輪毛羽區(qū)域的判定提供判斷依據,由小及大的逐漸“推抹”擦除毛羽部分。算法流程如圖6所示。
采用上述算法進行仿真,將采集的圖像調入MatLab后,矩陣大小為800×800×3,原始圖像見圖5。二值化后,圖像矩陣為800×800。圖7示出r=1和r=2時經垂直方向識別及推抹算法處理后的圖像,通過這2個圖像可清晰地看到該算法“推抹”擦除毛羽的過程。經實驗及仿真驗證采用r=3,c=30時效果較好,處理后的圖像如圖8所示。繼續(xù)增大r則只增加了程序執(zhí)行時間而處理效果無明顯改善。
圖7 r=1和r=2時處理圖5圖像的結果Fig.7 Result of processing images in Fig.5 with r=1 (a) and r=2 (b)
圖8 采用垂直方向識別及推抹補償算法處理后的圖像Fig.8 Image processed by vertical direction recognition and massage compensation algorithm
顯然,處理白色背景黑色紗線圖像時采用的垂直方向識別及推抹算法相比于黑色背景白色紗線圖像采用的變閾值識別補償算法的程序執(zhí)行時間要長很多。對于數據大小相同的圖像,前者需要對每個像素遍歷r次而后者只需要遍歷1次。因此,在處理后者時為簡化算法提高效率不需要采用垂直方向識別及推抹補償。
經毛羽補償后,圖像中大部分毛羽已被濾除并補償為背景亮度,但仍存在一部分像素點成為了椒鹽和椒粒噪聲。需要使用自適應中值濾波算法來進行進一步的處理。文獻[6-9]對自適應中值濾波算法進行改進以解決各種實際問題,考慮到在紗線主干信息提取過程中毛羽是主要干擾信息,且毛羽已在上一步中基本去除,且圖像針對噪聲的處理沒有特殊要求,為簡化算法,縮小處理時間,只采用基本的自適應中值濾波算法即可,不必再做其他處理。
自適應中值濾波算法在濾波的過程中可根據預先設定好的條件,自動改變?yōu)V波窗口的尺寸大小,同時還可根據一定的條件判斷當前像素是否為噪聲,如果是則用鄰域中值替換掉當前像素,不是則不作改變。IMGxy為一幅將被處理的中心位于(x,y)的子圖像。設Dmin為最小灰度值,Dmax為最大灰度值,Dmed=IMGxy中的中值,Dxy為坐標(x,y)處的灰度值。是否滿足Dmin 使用MatLab軟件7.0版對所采集的圖像進行仿真。使用黑色背景白色紗線圖像2張,圖像矩陣大小分別為400×506×3和500×1 760×3,白色背景黑色紗線圖像1張矩陣大小為800×800×3,見圖1、圖4(a)、圖5。根據上述算法,先進行二值化,然后對黑色背景白色紗線圖像采用毛羽灰度變閾值識別補償,對白色背景黑色紗線圖像采用垂直方向識別及推抹補償。最后,將補償過的圖像選擇初始處理半徑為3,最大處理半徑為11的窗口進行自適應中值濾波[10],可得到圖9所示的圖像。對比圖1、圖4(a)、圖5可看出,采用基于毛羽補償與自適應中值濾波算法進行處理后,紗線毛羽基本清除,紗線主體圖像清晰,邊界清楚,完全可滿足后續(xù)針對紗線線徑進行測量的精度要求。 圖9 最終處理后的圖像Fig.9 Final processed images. (a)Black background horizontal yarn image;(b) Background black yarn image;(c) Black background longitudinal yarn image 根據前期其他學者的研究方法[1]為圖像分割并采用紗線形態(tài)學計算線徑,所得圖像中紗線的直徑數據如表1所示。數據表明采用圖像處理法的檢測效果測量直徑與理論直徑最大誤差在3%以內,滿足精度要求。 表1 測試方法所得結果對比Tab.1 Results comparison 使用數字圖像處理技術進行紗線直徑測量時,最重要的一步是識別并處理紗線主干圖像。通過分析研究及仿真提出了一種基于毛羽補償與自適應中值濾波的紗線主體圖像識別算法。由于采集的圖像只是黑白兩色,故數據預處理只用R維數據而棄用GB兩維數據直接將RGB圖像二值化為灰度圖像。然后,根據不同背景顏色圖像的特點,黑色背景圖像根據毛羽呈現灰色而背景是黑色紗線是白色的特點選擇毛羽灰度變閾值識別補償法,白色背景圖像根據毛羽很細且與紗線主干一樣呈現黑色而毛羽上下或左右臨近幾個像素外就已經呈現背景色的特點選擇垂直方向識別及推抹補償法。通過上述2種方法分別對不同特點圖像中的毛羽識別并補償為背景色。最后,將已進行了毛羽識別補償的圖像進行自適應中值濾波。仿真結果證明本文算法相對簡單,處理速度快。 FZXB3 仿真及實驗結果
4 結束語