潘蘇情,朱 昊
(紹興文理學(xué)院 紡織服裝學(xué)院,浙江 紹興 312000)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和普及,數(shù)字化技術(shù)在紡織領(lǐng)域的發(fā)展也越來(lái)越廣泛,如檢測(cè)機(jī)織物密度、檢測(cè)織物疵點(diǎn)、模擬機(jī)器運(yùn)行等等。在紡織品紋樣設(shè)計(jì)或來(lái)樣加工中,需要掃描或拍照上傳圖像,然而由于試樣擺放、拍攝角度或織物自身的原因等,無(wú)法絕對(duì)地保證橫向水平和縱向豎直的狀態(tài),即使事先經(jīng)過(guò)人工手動(dòng)調(diào)整,織物圖像的偏斜也無(wú)法避免。而且由于現(xiàn)有的大部分織物組織分析等算法都對(duì)圖像傾斜較為敏感,傾斜角度的存在會(huì)給識(shí)別結(jié)果造成較大誤差,檢測(cè)速度也較緩慢,因此,有必要尋求一種準(zhǔn)確修正織物圖像的辦法。
經(jīng)查閱文獻(xiàn)發(fā)現(xiàn),圖像幾何校正技術(shù)在紡織領(lǐng)域已成為研究熱點(diǎn)。如潘如如等提出一種利用圖像紋理特征實(shí)現(xiàn)機(jī)織物圖像的糾偏方法,由于機(jī)織物的紗線是平直的,兩根紗線之間的距離與紗線方向相同,只要能對(duì)紗線的間隙進(jìn)行傾斜糾正就可以實(shí)現(xiàn)織物圖像的糾偏;或者通過(guò)傅里葉變換提取圖像不同位置直線信號(hào)的周期,以周期性最強(qiáng)的直線信息作為判斷織物圖像中紗線位置的標(biāo)準(zhǔn),并依此實(shí)現(xiàn)了高緊度機(jī)織物圖像的傾斜糾正。吳海虹等利用圖像梯度作為緯紗的走向信息,運(yùn)用層次Hough變換檢測(cè)緯紗偏斜角度。
雖然已有大量研究證明圖像幾何校正技術(shù)不管是用于機(jī)織物、針織物還是非織造織物,都有所進(jìn)展和突破,基于的算法也不局限于一種,但是基本上都只適用于同類(lèi)織物。因此,本研究想尋求一種可同時(shí)適用于機(jī)織物和針織物的花式織物紋樣修正算法。研究采用Canny算子檢測(cè)圖像邊緣,Hough變換檢測(cè)直線,根據(jù)橫向和縱向的傾斜角對(duì)圖像進(jìn)行仿射變換修正。Hough變換主要優(yōu)點(diǎn)是能容忍特征邊界描述中的間隙,并且相對(duì)不受圖像噪聲的影響。此方法不僅能快速將花式織物花型紋樣修正,提高工作效率,而且對(duì)后續(xù)圖像檢測(cè)影響較小,大大提高了圖像的準(zhǔn)確度。
Python語(yǔ)言是一種解釋性語(yǔ)言,代碼簡(jiǎn)潔明了,上手容易,其擁有各種各樣的工具庫(kù),若無(wú)特殊要求,不需要自己重新編寫(xiě),即可直接調(diào)用,研究中就采用了opencv、numpy、skimage、math、copy、matplotlib等庫(kù)來(lái)進(jìn)行圖像的處理以及多維數(shù)組的運(yùn)算。
研究對(duì)傾斜的花式織物進(jìn)行修正,在掃描圖像后,為了突出圖像的特征,需要將圖像進(jìn)行灰度化和邊緣檢測(cè)。合適的邊緣檢測(cè)可以減少Hough變換的運(yùn)算量并增加后續(xù)操作的準(zhǔn)確度,所以,研究對(duì)現(xiàn)有的幾種邊緣檢測(cè)方法進(jìn)行了分析比較,最后決定采用Canny邊緣檢測(cè)算法更為恰當(dāng)。經(jīng)過(guò)邊緣檢測(cè)后的圖像線條明顯突出,此時(shí)可以采用Hough變換。由于需要同時(shí)考慮機(jī)織物和針織物的適用性,而針織物線圈橫列不一定平行于水平方向,線圈縱行并不一定平行于垂直方向,線圈橫列不一定垂直于線圈縱行,所以Hough變換的結(jié)果需要分別得到橫向和縱向的直線傾斜角度,且普通的旋轉(zhuǎn)變換不能滿(mǎn)足要求,需要采用仿射變換進(jìn)行圖像修正。由于Python語(yǔ)言中,修正后圖像仍處于矩形畫(huà)布中,除修正圖像以外部分被涂黑,此時(shí)需對(duì)畫(huà)布進(jìn)行裁剪從而得到面積最大圖像,最后輸出裁剪后的圖像即為最終修正結(jié)果如圖1所示。
圖1 花式織物紋樣修正算法設(shè)計(jì)流程
一個(gè)圖像由若干個(gè)像素點(diǎn)組成,像素點(diǎn)是圖像最小的單位,每個(gè)像素點(diǎn)的顏色由R(紅色)、G(綠色)、B(藍(lán)色)3個(gè)值確定。圖像灰度化就是使圖像中的每一個(gè)像素點(diǎn)都滿(mǎn)足R=G=B,這個(gè)相等的值稱(chēng)為灰度值。最基礎(chǔ)的圖像灰度化方法有:最大值法、平均值法、加權(quán)平均法。
由于最大值法和平均值法較為簡(jiǎn)單,且沒(méi)有考慮亮度通道信息。而加權(quán)平均法是將R、G、B 3個(gè)值以不同的權(quán)值進(jìn)行加權(quán)平均,以此得到的值作為灰度值,將圖像灰度化。因此,研究采用加權(quán)平均法將圖像灰度化。
Poggio提出,邊緣或許對(duì)應(yīng)著圖像中物體(的邊界)或許并沒(méi)有對(duì)應(yīng)著圖像中物體(的邊界),但是邊緣具有十分令人滿(mǎn)意的性質(zhì),它能大大地減少所要處理的信息但是又保留了圖像中物體的形狀信息。圖像的邊緣檢測(cè)就是為了使圖像的輪廓更加明顯,突出圖像的特征的圖像處理辦法。對(duì)現(xiàn)有邊緣檢測(cè)算法,研究分析比較了Laplacian、Sobel和Canny三種邊緣檢測(cè)算法。
Laplacian算法是最簡(jiǎn)單的各向同性微分算子。各向同性就是無(wú)方向性,可以對(duì)任何方向進(jìn)行加強(qiáng),但其實(shí)也得不到任何方向的信息。所以Laplacian算法特別適合用于突出圖像中的孤立點(diǎn)、孤立線或線端點(diǎn),只是其對(duì)噪聲比較敏感,所以很少用該算子檢測(cè)邊緣。
Sobel算子用于提取邊緣,簡(jiǎn)單快速,對(duì)灰度漸變、噪聲較多的圖像處理效果較好。然而,Sobel算子通過(guò)像素平均抑制噪聲后,檢測(cè)出的圖像邊緣不止一個(gè)像素,不能檢測(cè)出真正的邊緣,所以提取的圖像輪廓可能會(huì)與背景融為一體。
Canny邊緣檢測(cè)只需要處理部分?jǐn)?shù)據(jù)量,而且還可以有效提取所需的信息。根據(jù)圖像設(shè)定高低閾值,假如邊緣像素的梯度值高于高閾值記為強(qiáng)像素點(diǎn);介于高低閾值之間記為弱像素點(diǎn);小于低閾值則舍去。所以Canny算子可以檢測(cè)出真正的邊緣,識(shí)出的邊緣要更接近圖像中的實(shí)際邊緣。
機(jī)織物的邊緣檢測(cè)算法對(duì)比如圖2所示,針織物的邊緣檢測(cè)算法對(duì)比如圖3所示。對(duì)比三種邊緣檢測(cè)方法,可以明顯看出Laplacian邊緣檢測(cè)沒(méi)有突顯邊緣,且圖像噪聲對(duì)圖像的影響較大;Sobel邊緣檢測(cè)時(shí),原圖中顏色相近的區(qū)域沒(méi)有檢測(cè)出來(lái),即不能?chē)?yán)格區(qū)分出圖像與背景;而Canny邊緣檢測(cè)的效果較好,邊緣特征突出,邊緣檢測(cè)完整,有利于下一步操作。
綜上所述,研究最終選擇采用Canny邊緣檢測(cè)算法,其對(duì)機(jī)織物和針織物的邊緣處理效果都不錯(cuò),可得到更接近實(shí)際的邊緣。
圖2 機(jī)織物的邊緣檢測(cè)算法對(duì)比
圖3 針織物的邊緣檢測(cè)算法對(duì)比
Hough變換最早是從黑白圖像中檢測(cè)直線,后來(lái)的廣義Hough變換則可以檢測(cè)任何曲線。其所實(shí)現(xiàn)的是一種從圖像空間(直角坐標(biāo)系)到參數(shù)空間(極坐標(biāo)系)的映射關(guān)系。利用點(diǎn)與線的對(duì)偶性,可將圖像空間的檢測(cè)問(wèn)題轉(zhuǎn)換到參數(shù)空間解決。
Hough變換原理如圖4所示。由圖4可知,若需要檢測(cè)出直角坐標(biāo)系中的直線L
,并求其傾斜角,則將直角坐標(biāo)系中每一個(gè)點(diǎn)轉(zhuǎn)換成極坐標(biāo)中的曲線。此時(shí)發(fā)現(xiàn)A
、B
、C
、D
、E
、F
點(diǎn)轉(zhuǎn)換到極坐標(biāo)系中分別為曲線L
1、L
2、L
3、L
4、L
5、L
6,其中有5條曲線相交于K
點(diǎn),L
6也與其他5條曲線有交點(diǎn),但是交于K
點(diǎn)的直線更多,說(shuō)明K
點(diǎn)對(duì)映的直線才是所需檢測(cè)的直線,此時(shí)可根據(jù)K
點(diǎn)坐標(biāo)得出直線傾斜角。(1)
(2)
k
=max
(max
(a
)),(3)
(4)
(5)
max
(sum
)= ∑=1~a
,(6)
θ
=b
1。(7)
圖4 Hough變換原理
仿射變換是將一個(gè)平面的點(diǎn)映射到另一個(gè)平面內(nèi)的二維投影,包括平移、旋轉(zhuǎn)、放縮、剪切等,具有很強(qiáng)的實(shí)用性,可用于圖像配準(zhǔn)、圖像糾正和紋理糾正,以及創(chuàng)建全景圖像等。其保持了二維圖形的“平直性”,即仿射變換前平行的兩條直線,仿射變換后仍然是直線且平行,所以不會(huì)改變織物的花型,效果較好。
仿射變換是一種二維坐標(biāo)(x
,y
)到二維坐標(biāo)(u
,v
)的線性變換,其數(shù)學(xué)表達(dá)式如式(8)所示。(8)
對(duì)應(yīng)的齊次坐標(biāo)矩陣表示為
(9)
由上述矩陣可得,若已知仿射變換前的三點(diǎn)及其對(duì)應(yīng)的變換后的三點(diǎn),則可以確定一個(gè)仿射變換矩陣,而且是唯一的仿射變換矩陣,從而可將整個(gè)圖像進(jìn)行仿射變換修正。由于織物的擺放、拍攝角度或織物自身的原因等,導(dǎo)致縱橫向存在多種傾斜情況,可能會(huì)得到不同的變換矩陣,需要分情況討論。
研究算法中,圖像的仿射變換經(jīng)過(guò)旋轉(zhuǎn)和平移。將旋轉(zhuǎn)中心設(shè)定為圖像中心,由于圖像的大小和橫縱向傾斜角度已知,圖像旋轉(zhuǎn)前后的坐標(biāo)可根據(jù)幾何運(yùn)算求得。以某一橫縱向傾斜情況為例(見(jiàn)圖5),選圖像中心(P
1)、經(jīng)過(guò)P
1的縱向傾斜直線與圖像上邊界的交點(diǎn)(P
2)和經(jīng)過(guò)P
1的橫向傾斜直線與圖像左邊界的交點(diǎn)(P
3),以這三點(diǎn)的位置及其對(duì)映旋轉(zhuǎn)并平移后三點(diǎn)(P
1′、P
2′、P
3′)的位置確定仿射變換矩陣。圖5 仿射變換和畫(huà)布擴(kuò)大
原矩形圖像經(jīng)過(guò)仿射變換后變?yōu)槠叫兴倪呅螆D像,而由于Python
中坐標(biāo)值為負(fù)的圖像部分不顯示,所以為了得到完整的變換圖像,需要對(duì)圖像畫(huà)布進(jìn)行擴(kuò)大。由于旋轉(zhuǎn)前后圖像均具有對(duì)稱(chēng)性,所以可根據(jù)原矩形圖像兩頂點(diǎn)(Q
1、Q
2)及仿射變換矩陣,得到平行四邊形圖像突出正坐標(biāo)系的兩頂點(diǎn)(Q
1′、Q
2′)坐標(biāo),從而得到橫縱向伸出長(zhǎng)度,將圖像畫(huà)布擴(kuò)大,得到完整的圖像。此時(shí),畫(huà)布為矩形,而不存在圖像的部分被涂黑,影響美觀和后續(xù)操作,需要將圖像裁剪為矩形,裁剪需知矩形的兩個(gè)坐標(biāo)(左上角坐標(biāo)及右下角坐標(biāo))。研究采用中心擴(kuò)散的算法對(duì)圖像進(jìn)行裁剪(見(jiàn)圖6),即從中心點(diǎn)H
出發(fā),逐漸向兩邊延伸,每增加1個(gè)像素點(diǎn),就經(jīng)過(guò)此時(shí)的M
點(diǎn)和N
點(diǎn)分別作垂線交平行四邊形上邊界于G
點(diǎn)和R
點(diǎn),直到無(wú)法同時(shí)存在G
點(diǎn)和R
點(diǎn)時(shí)停止延伸。若同時(shí)存在G
點(diǎn)和R
點(diǎn),比較兩交點(diǎn)縱坐標(biāo)(y
1和y
2)的大小,選擇較大的縱坐標(biāo)(y
2),根據(jù)對(duì)稱(chēng)的原理很容易得到T
點(diǎn)縱坐標(biāo)y
3。此時(shí)根據(jù)S
點(diǎn)和T
點(diǎn)坐標(biāo)可計(jì)算矩形面積,每一次得到的面積都與上一次得到的面積作比較,得到最大面積時(shí)的兩個(gè)點(diǎn)(S
點(diǎn)和T
點(diǎn))坐標(biāo)即為最終裁剪所需坐標(biāo)。經(jīng)過(guò)試驗(yàn)證明,只要仿射變換正確,此算法基本上就可以得到最大面積的裁剪圖像且操作方便快捷,裁剪效果良好。圖6 圖像裁剪
為驗(yàn)證算法的可行性,將同一機(jī)織物或針織物手動(dòng)擺放若干不同角度測(cè)試修正效果(見(jiàn)圖7、圖8)。實(shí)驗(yàn)證明,該算法可同時(shí)運(yùn)用于機(jī)織物和針織物,在允許范圍內(nèi)的任意傾斜角度下都可以進(jìn)行修正。
圖7 機(jī)織物不同傾斜角度修正圖像
圖8 針織物不同傾斜角度修正圖像
研究算法旨在尋求一種可同時(shí)適用于機(jī)織物和針織物的花式織物紋樣修正算法,此算法減少了確定閾值的步驟,自動(dòng)得出橫縱向傾斜角度,仿射變換后裁剪得當(dāng),效率高,效果好,可行性較高,但同時(shí)也存在較大局限,后續(xù)算法可考慮從以下方面改進(jìn):
(1)二維圖像的花型紋樣中線條較多時(shí)會(huì)對(duì)Hough變換檢測(cè)結(jié)果產(chǎn)生干擾,如導(dǎo)致檢測(cè)出的角度為花型紋樣角度而不是縱橫向傾斜角度,可考慮在忽略紋樣并突出縱橫向的情況下檢測(cè)。
(2)拍攝或掃描的圖像可能存在扭曲現(xiàn)象,如圖像縱橫向不一定是直線,可能是彎曲的曲線時(shí),Hough變換效果不好,后續(xù)可考慮直線分段修正算法。
表1 不同樣品的修正效果