周 佳,宗雅倩,劉其思,徐平華,2,桑振聰
( 1.南通大學(xué) 紡織服裝學(xué)院,江蘇南通 226019;2.南通大學(xué) 杏林學(xué)院,江蘇南通 226019 )
服裝樣板是在現(xiàn)代服裝工業(yè)生產(chǎn)中進(jìn)行畫樣裁剪和產(chǎn)品縫制過程中的依據(jù),也是檢驗(yàn)產(chǎn)品規(guī)格質(zhì)量的直接標(biāo)準(zhǔn)[1]。在現(xiàn)代化工業(yè)生產(chǎn)中,對(duì)外來樣板的精確識(shí)別需求越來越大,同時(shí)對(duì)樣板尺碼縮放等再加工過程的效率提出了巨大的考驗(yàn)。因此,是否能將紙質(zhì)樣板實(shí)物快速精準(zhǔn)的提取并且轉(zhuǎn)換成為計(jì)算機(jī)中可編輯的數(shù)據(jù)形式成為了樣板輪廓提取的關(guān)鍵。
本文將通過MATLAB編程,實(shí)現(xiàn)樣板邊緣輪廓的提取、優(yōu)化,使原本硬質(zhì)卡紙形式的實(shí)物樣板轉(zhuǎn)化成理想的計(jì)算機(jī)樣板圖。計(jì)算機(jī)樣板圖的輸出大大減少了服裝樣板在日常像素儲(chǔ)存中所占用的空間,并可將數(shù)據(jù)傳輸至AutoCAD軟件中進(jìn)行相應(yīng)的編輯,給實(shí)際工業(yè)生產(chǎn)帶來了極大便利,服裝樣板輪廓提取具有重要的研究和市場(chǎng)應(yīng)用價(jià)值。
由于圖像受到各類環(huán)境噪聲的干擾,圖像質(zhì)量會(huì)有一定程度的退化下降。因此,對(duì)圖像進(jìn)行降噪處理是十分必要的。在對(duì)樣板的預(yù)處理中,本文將利用總變差模型對(duì)圖像進(jìn)行預(yù)處理,將干擾項(xiàng)消隱,最終使得樣板圖像具有更清晰的視覺效果。
一幅受到干擾的圖像可以分解為圖像U和加性隨機(jī)噪聲W。
其中加性隨機(jī)噪聲是一種高斯白噪聲,具有零均值,方差為σ2,并且包含噪聲的圖像的全變分比無噪聲的圖像明顯加大,最小化全變分可以消除噪聲[2]。
圖像U的全變分定義為梯度幅值的積分形式:
(1)
(2)
因此,約束項(xiàng)的選取尤為關(guān)鍵。.
(3)
以下圖中服裝樣板圖像為例(圖1所示),圖1(a)樣板中含括了一些無價(jià)值的線條信息,通過算法對(duì)圖像進(jìn)行消隱去噪后,得到圖1(b),可以消除干擾線條,獲得更清晰的服裝樣板。
圖1 服裝樣板(a)及去噪效果圖(b)
圖案的邊緣提取問題,即根據(jù)圖像亮度信息提取和表示出具有顯著變化的位置,最后保留圖像的主要結(jié)構(gòu)信息[4]。而服裝樣板的邊緣提取也屬于這類問題。常見的邊緣檢測(cè)算法包括Roberts邊緣檢測(cè)、Sobel邊緣檢測(cè)、Prewitt邊緣檢測(cè)等,但都或多或少地存在著一定的問題。如Roberts算子雖然簡(jiǎn)單明了,運(yùn)行快速且方便,尤其是對(duì)具有陡峭的低噪聲圖像的反應(yīng)最好,但結(jié)果中會(huì)存在偽邊緣,不能夠如實(shí)地反映服裝樣板的真實(shí)情況;Sobel算子和Prewitt算子雖然檢測(cè)邊緣的范圍更廣,但也存在著偽邊緣,而且檢測(cè)出來的邊緣線較粗,更放大了噪聲[5]。在相對(duì)復(fù)雜的圖像中使用這些算法,會(huì)使得結(jié)果出現(xiàn)更明顯的斷點(diǎn),且無法完全提取出服裝樣板。而Canny算子則在以上方面表現(xiàn)較為出色。因此,本文經(jīng)過比較分析后,最后利用Canny算子對(duì)預(yù)處理后的圖像進(jìn)行邊緣檢測(cè)。主要步驟如下:
(1)去噪聲。對(duì)于沒有經(jīng)過處理的原始圖像,任何邊緣檢測(cè)算法都用之無效。因此,要對(duì)樣板圖像進(jìn)行最初的去噪或雜質(zhì)消隱處理,本文利用之前提到的總變差圖像濾波處理來對(duì)原始樣板圖像進(jìn)行去噪處理。
(2)梯度計(jì)算。利用導(dǎo)數(shù)算子找到圖像灰度沿著兩個(gè)方向的導(dǎo)數(shù)GX、Gy,然后就可以分別求出梯度的幅值和方向[6]:
(4)
(5)
(3)梯度方向確定。首先,獲得圖像的邊緣方向,并將模板邊緣的梯度方向粗略地劃分為若干個(gè)角度,并根據(jù)角度找到像素梯度方向的相鄰像素。
(4)遍歷圖像。如果像素的灰度值與梯度方向上的兩個(gè)像素的灰度值相比不是最大的,則像素的灰度值被設(shè)置為0,即該像素點(diǎn)位置不是邊緣[7]。
(5)用累計(jì)直方圖計(jì)算兩個(gè)閾值。任何大于高閾值的像素點(diǎn)位置一定是邊緣,反之同理。如果檢測(cè)結(jié)果在高低兩個(gè)閾值之間,判斷在像素的相鄰像素中是否存在超過高閾值的邊緣像素,如果有的話則是邊緣,反之則不是[8]。
骨架是可有效地反映出原物體形狀的連通性和拓?fù)浣Y(jié)構(gòu)而由單個(gè)像素點(diǎn)組成的重要幾何特征。通常,獲取圖像骨架的過程即是“細(xì)化”圖像的過程。使用對(duì)象的骨架來描述對(duì)象是一種強(qiáng)調(diào)對(duì)象的結(jié)構(gòu)特征并提高內(nèi)存使用和數(shù)據(jù)壓縮率的好方法[9]。在本文中利用MATLAB的骨架提取算法,將經(jīng)過形態(tài)學(xué)修復(fù)的樣板輪廓進(jìn)行骨架提取,使其細(xì)化為一維曲線,便于樣板數(shù)據(jù)的矢量化存儲(chǔ)。
在利用改進(jìn)的Canny算法提取樣板邊緣后,基于數(shù)學(xué)形態(tài)學(xué)提取邊緣骨架。數(shù)學(xué)形態(tài)學(xué)的骨架化方法,是基于數(shù)學(xué)圖論的學(xué)科,主要思想是通過一定形態(tài)的結(jié)構(gòu)元素測(cè)量和提取圖像中的相應(yīng)形狀,以便進(jìn)行圖像分析和識(shí)別[10]。圖像經(jīng)過數(shù)學(xué)形態(tài)學(xué)的處理,不但可以使原圖像數(shù)據(jù)信息簡(jiǎn)單化,而且可以去除不相關(guān)的信息,保留根本的形狀屬性,并且具有原生的并行實(shí)現(xiàn)的結(jié)構(gòu)優(yōu)點(diǎn),最后得到連續(xù)、準(zhǔn)確的骨架。
根據(jù)最大圓盤算法的定義,兩組結(jié)構(gòu)元素分別為:
A={A1,A2,A+3,A+4},B={B1,B2,B3,B4} (6)
前者用于去除西北、東北、東南和西南角的點(diǎn),后者用于去除北、東、南和西方向上的點(diǎn),如圖2所示。在圖中,*表示被引用的中心點(diǎn),1表示目標(biāo)圖像的點(diǎn),0表示背景圖像,x表示目標(biāo)圖像或背景圖像[11]。
圖2 結(jié)構(gòu)元模板
結(jié)構(gòu)元B對(duì)集合A的細(xì)化可表示為A?B,它可以根據(jù)命中或未命中變換來定義:
A?B=A-(A?B)=A∩(A?B)C
(7)
通過應(yīng)用數(shù)學(xué)形態(tài)學(xué)細(xì)化算法來細(xì)化圖像,主要步驟如下:
(1)目標(biāo)圖像A細(xì)化成Y,用A→Y;
(2)作A=A?Bi,其中i從1取到8;
(3)如果A=Y,迭代結(jié)束,否則執(zhí)行步驟(4);
(4)A←Y,再執(zhí)行(2)步驟。
經(jīng)數(shù)學(xué)形態(tài)學(xué)細(xì)化后的樣板骨架如圖3所示,得到單像素連通的樣板骨架,大大縮減了樣板的存儲(chǔ)量。
圖3 樣板骨架
邊緣的完整性對(duì)后期圖像的處理起到關(guān)鍵作用。因此,對(duì)分割后的圖像進(jìn)行修復(fù)就顯得十分重要。本文利用形態(tài)學(xué)運(yùn)算來修復(fù)邊緣圖像。形態(tài)學(xué)運(yùn)算主要包括開運(yùn)算和閉運(yùn)算[12]。
先進(jìn)行腐蝕而后膨脹的過程稱為開運(yùn)算。結(jié)構(gòu)元B對(duì)集合A的開操作,表示為A°B,定義如下:
A°B=(AΘB)
(8)
先進(jìn)行膨脹而后腐蝕的過程稱為閉運(yùn)算。結(jié)構(gòu)元B對(duì)集合A的閉操作,表示為A·B,定義如下:
A·B=(A⊕B)ΘB
(9)
具體以下圖為例,圖4中(a)圖為對(duì)樣板進(jìn)行預(yù)處理,邊緣提取和骨架細(xì)化后的圖,由于樣板邊緣相隔較近,導(dǎo)致出現(xiàn)連接現(xiàn)象,而且在樣板邊緣出現(xiàn)凸起、不平整等現(xiàn)象。通過形態(tài)學(xué)運(yùn)算,將圖4(a)中的問題進(jìn)行了較好的修復(fù),如圖4(b)所示,最終能夠輸出光滑連續(xù)的曲線,這為后續(xù)操作提供了堅(jiān)實(shí)的基礎(chǔ),具有重要意義。
(a) (b)
由于樣板輪廓將會(huì)被運(yùn)用到工業(yè)制版中,因此需將所得到樣板輪廓通過圖形交換文件保存為AutoCAD能夠識(shí)別的格式DXF,以便后續(xù)處理。DXF是Autodesk公司為了在AutoCAD與其它軟件之間交換CAD數(shù)據(jù)而開發(fā)的CAD數(shù)據(jù)文件格式[13]。
在制版過程中,大多使用AutoCAD進(jìn)行制版,且DXF格式文件中代碼本身就具有良好的可讀性,方便用戶修改。因此,本文將所得樣板輪廓保存為DXF格式,最后利用VisualC++編制程序,將保存DXF格式的矢量化數(shù)據(jù)傳輸?shù)紺AD制版系統(tǒng)中。
本文采用MATLAB編程,選用普通服裝樣板作為測(cè)試樣,利用上述方法進(jìn)行服裝樣板輪廓提取、優(yōu)化。圖5(Ⅰ)為分割后的樣板邊緣,圖5(Ⅱ)為骨架提取細(xì)化后的樣板輪廓,圖5(Ⅲ)為優(yōu)化后的樣板輪廓。
Ⅰ 樣板邊緣
Ⅱ 樣板骨架輪廓
Ⅲ 樣板輪廓優(yōu)化
從實(shí)驗(yàn)結(jié)果中,可以看出改進(jìn)的Canny算法能夠較為準(zhǔn)確完整地分割出樣板的邊緣,在提取邊緣輪廓的骨架并細(xì)化時(shí),可以從結(jié)果中看到雖然提取出的骨架具有一定的連貫性,但是在骨架的若干部位還存在一定的奇異點(diǎn)及凸起;而在輪廓優(yōu)化中,則很好地解決了這一問題,使得單像素樣板輪廓連貫準(zhǔn)確。
本文采用MATLAB編程,利用改進(jìn)的Canny算法用于檢測(cè)和分割平滑處理后的服裝樣板,并利用骨架提取算法來細(xì)化樣板的輪廓。在實(shí)際應(yīng)用中有很大的應(yīng)用價(jià)值。而樣板輪廓的提取輸出則大大減少服裝樣板原始存儲(chǔ)中所占用的存儲(chǔ)空間,并可將數(shù)據(jù)傳輸至AutoCAD軟件中進(jìn)行相應(yīng)的編輯,帶來了極大的便利。