劉婷婷, 潘偉杰, 呂 健, 梁煥超, 付淑君
(貴州大學 現代制造技術教育部重點實驗室, 貴陽 550025)
蠟染是指將蠟作為抗染介質應用于織物上, 通過染色獲得圖案的技術, 是我國歷史悠久的傳統紡織印染手工藝, 古稱“蠟纈”[1]. 作為一種技術與藝術, 在過去與現在都是一種優秀的民族文化, 承載了少數民族獨特的歷史與文化內涵; 其圖案具有高度的藝術價值與文化內涵, 常被應用于現代設計中. 由于蠟染圖案組成復雜, 其構型與紋樣的排布往往是根據設計師的審美經驗與設計經驗來進行排列組合, 費時費力且受設計水平制約. 在圖案設計方面, Cui 等[2]提取形狀特征通過形狀文法計算系統生成系列圖形模板; Muslimin[3]提出了一種基于形狀文法的設計方法來分析和綜合結構設計中的表示機制; Nasri 等[4]提出一種自動生成原始和新形式的周期性摩爾幾何圖案的建模方法; Tian等[5]提出了基于分形幾何的蠟染花卉圖案自動生成方法, 實現傳統手工蠟染圖案的計算機自動模擬生成; 張欣蔚等[6]通過建立本體模型與形狀文法之間的關系實現復雜圖案的快速設計; 李華飆等[7]通過對不同傳統紋樣進行特征分析, 找出其生成規則的異同, 提出了一種傳統紋樣統一生成模式; 章義來等[8]提出了基于分形規則的陶瓷圖案構圖模型, 實現圖案的快速生成;Strobbe 等[9]研究了形狀語法在計算機上的實現. 本文在上述研究的基礎上提出一種基于構型規則重用的設計方法, 通過對構型規則的提取與重用, 實現蠟染圖案快速設計.
本文研究流程如圖1 所示. 首先對蠟染圖案的構圖進行分析與表征, 將蠟染圖案層次分為主要紋樣、修飾紋樣、填充紋樣與邊框紋樣. 然后提取蠟染圖案元素, 通過輪廓匹配獲取元素空間位置, 建立拓撲構型規則. 隨后收集蠟染知識了解紋樣語義; 對蠟染紋樣進行表征并構建蠟染圖像數字資源庫; 提出基于標識矩陣法的圖案嵌入方法, 在拓撲構型規則的節點上嵌入合適紋樣, 生成設計方案.

圖1 研究流程圖
平面化是蠟染圖案的主要構圖形式[10], 任何紋樣都可置于同一幅畫面中. 蠟染制作者認為“滿即多, 全即美”, 因而在繪制時為了顯示出圖案的視覺沖擊力,紋樣的種類、數量、造型都不受制約, 紋樣種類繁多卻不混亂, 給人一種均衡、秩序的視覺感受. 蠟染圖案主要布局方式有以下3 種.
1)秩序布局: 在構圖時選取一種紋樣作為主要圖案, 其余紋樣根據主要圖案的走勢進行分布, 如圖2(a)所示.

圖2 蠟染圖案主要布局形式
2)零散布局: 把紋樣無規則的放置在畫面中, 但紋樣與紋樣之間留有一定的留白區域, 大量的留白區域使得沒有關聯的紋樣營造出一種自然和諧的視覺感受,如圖2(b)所示.
3)分區布局: 使用幾何圖形來劃分整個畫面, 每個區域都是一幅完整畫面, 在整體上形成一種秩序, 如圖2(c)所示.
構型是建筑學中的概念, 常用來表達元素與元素、元素與整體之間的關系[11]; 在蠟染圖案中用建筑學的理論難以對其進行描述, 需要尋找其他方式對蠟染圖案的布局進行描述. 對于圖案組成方式, 人們常通過視覺觀察后使用自然語言對其進行描述, 如圖3(a)所示, 人們會給出“八個魚紋環繞一個銅鼓紋”這樣的語言描述, 其中“八個”“環繞”“一個”則揭露了該圖案的排布規律, 這種規律用形式化的方式表達為構型; 圖3(b)和圖3(c)則展示出即使紋樣相同, 構成的不同圖案給人的視覺感受也不一樣. 因此把輪廓c定義為由n個點組成的一條封閉曲線c=[a1,a2, …,an]; 圖元e定義為由m個有限輪廓組成的復合輪廓e=[f1,f2, …,fm];構型k定義為有限個圖形變換組合的布局規則k=[λ1,λ2, …,λr]; 這里的變換包含但不限于基本圖形的變換.

圖3 圖案構型和相同圖案在不同構型下的視覺觀感
如圖3(a)所示, 圖中有9 個紋樣, 但圖元卻可以有很多種, 例如4 個魚紋可以看作1 個圖元, 1 個鳥紋可以看作1 個圖元, 4 個鳥紋可以看作1 個圖元, 1 個銅鼓紋也可以看作1 個圖元. 圖元是圖案組成的基本單元, 也是圖形變換的最小對象. 為了更好地描述蠟染圖案中紋樣的層次關系, 提出一種基于蠟染圖案的層次表達方法.
圖元是圖案的一部分, 一幅完整的蠟染圖案是圖元與圖元間的相互作用, 和語義的深層次組合形成的一個有意義的整體. 將整幅蠟染圖案表達為一種樹狀結構, 節點由有限個圖元按照構型組合的子圖案, 子圖案u={e1,k1,e2,k2, …,en,kn}; 子圖案u也可以是有限個子圖案{uc1,uc2, …,ucn}, 按照構型組合為u={uc1,kc1,uc2,kc2, …,ucn,kcn}; 圖元層次按照主要紋樣(Z)、修飾紋樣(X)、填充紋樣(T)和邊框紋樣(B)進行劃分, 蠟染圖案的層次表達信息如表1 所示.

表1 蠟染圖案的層次表達信息表
2.1.1 蠟染圖像形態學預處理
本文通過圖像采集設備獲得蠟染圖案的數字圖像,圖像中紋樣輪廓清晰可見. 然而, 由于織物結構和蠟染制作過程中產生的冰裂紋較為明顯, 這些因素極大地干擾了蠟染圖案輪廓提取, 因此有必要去除圖像中的紋理.
(1)圖像梯度計算
為了提高蠟染圖案輪廓的邊緣檢出率, 使用形態學[12]梯度運算增強圖像中得極值對比度, 同時保留圖像中相對平滑的區域, 對于圖像f(x,y), 梯度圖像g(x,y)定義為:

其中, ⊕為膨脹運算, Θ 為腐蝕運算; 經過梯度計算后,圖像中的灰度過渡得到明顯增強, 并消除了梯度對邊緣方向的依賴性.
(2)形態學重建
為消除梯度圖像中由于噪聲造成的局部極值, 使用形態學中的開閉重構算法對梯度圖像進行重構, 保留重要的輪廓極值信息. 通過開閉重構將圖像中的紋理和噪聲一并去除, 并在重建過程中恢復紋樣輪廓, 在保持紋樣形狀信息的同時簡化了圖像. 形態學重建運算是在測地膨脹的基礎上展開的, 因此對于梯度圖像g(x,y)和參考圖像f(x,y), 其形態學測地膨脹定義為:

通過對蠟染數字圖像進行閉運算、腐蝕、開運算等形態學處理, 不僅能有效去除圖像中的紋理和噪聲,而且得到的二值圖像也能清楚地反映圖像中紋樣的整體特征; 然后對蠟染圖像進行閾值分割, 并轉換成二值圖像, 用于后續的邊緣提取.
2.1.2 蠟染圖案輪廓提取
蠟染圖案輪廓提取包括整體輪廓提取和元素輪廓提取. 輪廓也被稱為邊緣, 它包含了關于圖像的大量信息, 也是圖像的一個重要特征. 邊緣是圖像中灰度變化劇烈或在小范圍內不連續的點的集合, 可以理解為兩條灰度相對不同的邊界線. 圖像中的物體與背景在灰度或紋理上存在一定的差異, 邊緣檢測利用這種差異來提取目標和背景之間的邊界線, 最終將目標與背景區分開來.
與傳統的微分算子相比, Canny 邊緣檢測算子因其抑噪比大、檢測精度高的優點而得到了廣泛的應用[13].使用Python-OpenCV 模塊中的Canny 算子對經過形態學調整的蠟染圖案元素進行提取, 提取結果見圖4.為后續重用設計提供數字素材. 本實驗在Windows 10操作系統, Python 3.7 和OpenCV 4.5.1 環境下進行.

圖4 Canny 算子提取效果
2.2.1 用戶交互手動提取規則
(1)選擇子圖案
用戶根據對蠟染圖案中紋樣的視覺感知程度, 選取一個或多個蠟染紋樣作為子圖案; 由于不同用戶對紋樣的感知程度不同, 即使是同一幅蠟染圖案也存在多種選擇結果, 如表2 所示.

表2 手動選取子圖案的不同結果
(2)構造層次
用戶對紋樣進行選擇判斷, 若主要紋樣Z 中U1唯一存在, 則該紋樣自身為父圖案, 即可進行下一階段紋樣的選取; 若U1 不是唯一存在, 則選取相似子圖案;通過用戶選擇結果構建自底向上的子圖案層次表達模型.
(3)選擇編碼
用戶根據選擇結果對圖元進行從左到右、從上到下依次標注.
(4)重復步驟(1)–(3), 用戶將所有想要提取的子圖案都編碼完成后, 即可選擇退出構型規則提取界面, 系統自動根據用戶編碼結果自動生成構型規則, 以結果一為例的構型規則如圖5 所示.

圖5 結果1 的構型規則示例
2.2.2 構型規則自動提取
由于蠟染圖案組成復雜, 有較多相似輪廓, 手動提取規則的話需要大量的時間和操作, 因此需要對蠟染輪廓進行分類. 輪廓分類從距離和相似兩個維度來進行考慮. 相似輪廓往往存在旋轉、陣列、對稱等特征,而距離則會產生集群感或有一定的特殊意義. 綜上考慮, 自動提取主要有以下3 個過程.
1)基于Hu 矩的相似性輪廓聚類
統計學中常用矩來統計隨機變量的分布情況, HuMK在1962 年提出, 將矩特征應用于圖像處理中, 主要用來表征圖像的幾何特征, 又稱為幾何矩; 由于圖像在進行旋轉、縮放、平移等操作后, 仍能保持矩的不變性,因此又稱不變矩, 在該方法被廣泛采用后用HuMK 的名字來對其進行命名為Hu 矩[14]. 本文利用Hu 矩的不變特性來實現紋樣輪廓的匹配分類. 對于輪廓A, 輪廓

A,B間的輪廓差異性計算函數公式為:

經多次試驗發現, 當I(A,B)<0.02 時, 幾乎可以識別所有相似輪廓. 將識別出的相似輪廓歸入相似輪廓群,F=[f1,f2,f3, …,fn], 將不相似輪廓歸入不相似輪廓群,D=[d1,d2,d3, …,dn], 聚類過程如圖6 所示.

圖6 基于Hu 矩匹配的蠟染紋樣相似性聚類
2)凝聚層次聚類
不相似的輪廓大多數在空間位置上有一定的隱喻,在視覺上構成子圖案. 因此在面對不規則的圖案時, 采用凝聚層次聚類(agglomerative nesting)算法對非相似類集群進行自底向上聚合策略的層次聚類輪廓分離,由于集群中是形狀, 因此使用邊緣最小距離來衡量, 則輪廓Ci和輪廓Cj的最小邊緣距離計算公式為:

使用凝聚層次聚類方法對不相似輪廓群D進行分類, 得到J個集群輪廓類J1,J2, …,Jn, 和P個彼此獨立輪廓類P1,P2, …,Pn. 經過凝聚層次聚類后將d1的內圈與外圈分離開來, 將聚類結果構造層次表達模型, 如圖7 所示.

圖7 非相似類圖案層次表達模型
3)構型規則拓撲表達
使用Hu 矩進行輪廓匹配時, 運用其中的一階矩和零階矩來計算紋樣的中心坐標, 計算公式如下:


其中,M00是零階矩,M10、M01是一階矩,ic和jc是圖像的中心坐標. 將每個子圖案的中心點抽象成在圖案中的坐標點, 按照空間位置將每個點連接, 構建子圖案的鄰域關系圖, 這些點與線的拓撲關系稱為構型規則.蠟染圖案中子圖案U 的總個數集合為U={U1, U2, …,Ue}, 其中e為不同紋樣的總個數; 例如圖中某個子圖案Ue={Ue1, Ue2, …, Uef},f為該子圖案在該圖案中出現的次數. 根據上述規則在蠟染圖案中從左往右依次對圖案進行標注, 如圖8 所示; 基于上述方法進行構型規則大量提取, 構建構型規則庫, 以便后續設計服務.

圖8 紋樣位置分布及拓撲結構表達
3.1.1 蠟染知識收集
本文的知識來源于各個方面, 例如文獻書籍查閱、田野走訪等, 其中最主要的來源于貴州省民間蠟染的制作者、使用者、研究者等多方面專家提供的知識和經驗. 通過大量的資料收集與梳理, 對貴州省蠟染知識進行分類, 分類概念表如圖9(a)所示; 并將收集的蠟染圖片進行編碼保存便于后期調用, 見圖9(b)所示.

圖9 蠟染知識分類概念表及蠟染圖片編碼方式
苗族蠟染的圖案內容不僅是對所選題材的表示,更是透過所選題材展示其中的內涵與本質. 蠟染圖案是對生活現象、歷史文化和生活環境的反映, 苗家人往往通過圖案的單一或是組合來表達更深層次的內涵.“圖必有意, 圖必吉祥”, 他們把對生活事物的觀察和美好生活的向往呈現在蠟染圖案中, 從某種意義來說, 圖案是蠟染藝術的靈魂; 常見紋樣語義歸類如表3 所示.

表3 紋樣語義歸類表
3.1.2 蠟染紋樣表征與數字資源庫建設
可拓學[15]采用形式化語言表達事、物、關系和問題, 建立了以基元(物元、事元和關系元)為可拓學邏輯細胞的形式化模型. 基元概念把質與量統一在一個三元組中, 可以形式化描述物、事和關系即B=(O,C,V); 建立了形式化描述復雜事物和關系的復合元, 并利用它們描述事與物的問題、信息、知識和策略. 其中O為基元B的研究對象,C為特征,V為量值, 即可拓區間, 即c=[c1,c2,c3, …,cn]T對應的特征量值v=[v1,v2,v3, …,vn]T定義B的研究對象O的n維物元, 多維物元所構成的陣列表示如下:

為實現對蠟染紋樣的計算機識別與復雜圖形設計,本文使用可拓學的基元方法, 對蠟染紋樣進行表征. 以矢量紋樣為對象載體, 以文化語義(歷史、文化、采集地、創作人、風格等)、量化信息、可視化圖形、編碼信息等為特征量, 進行可拓基元形式化與量化表征.根據基元理論, 將上述知識抽象為物元、事元與關系元, 把對象、特征以及量值放置在一個整體中進行考慮, 其基元表達式為:

通過對以上知識整理, 建立每個紋樣的表征模型,結合收集的蠟染圖像構建數字資源庫, 并從中選取部分代表紋樣進行矢量化工作, 建立蠟染紋樣矢量圖庫,以便于為后續設計服務.
子圖案在圖案中的分布稱為圖案的構型, 將圖案中的構型規則提取之后, 在拓撲節點上嵌入適合的紋樣, 即可生成新的圖案. 紋樣的嵌入不是機械的置入,而是語義更深層次的組合, 在藝術價值與語義內涵上可以創造更多的組合與選擇. 構型規則重用步驟如下:
1)選擇構型規則和子圖案: 用戶從規則庫中選擇要重用的構型規則, 如圖10(a)中的構型規則R; 從紋樣矢量圖庫中選擇要嵌入的子圖案, 如圖10(a)中的子圖案集A.

圖10 紋樣嵌入構型過程與相同紋樣在同一構型中的嵌入結果
2) 子圖案嵌入: 把已選擇的子圖案, 按照主要紋樣、修飾紋樣、填充紋樣和邊框紋樣的層次信息, 嵌入到構型規則拓撲節點上.
3)消除重疊: 子圖案在嵌入過程中, 由于拓撲結構的空間位置會出現紋樣重疊的情況, 本文提出一種基于標識矩陣法的子圖案嵌入方法來解決紋樣的重疊情況. 首先建立一個初始值為0 的蠟染畫布大小的標識矩陣, 當有圖案嵌入時, 標識元素由0 改為1, 基于標識矩陣法的紋樣嵌入方法如圖11 所示.

圖11 基于標識矩陣約束的圖案嵌入
4)局部調整: 用戶對嵌入結果進行局部調整, 直到滿意為止.
構型規則嵌入子圖案具體過程見圖10(b), 構型規則R與子圖案集A的嵌入結果如圖10(c); 其他子圖案在構型規則R中的嵌入結果如圖12 所示. 基于構型規則重用的設計方法, 可以快速生成大量保持蠟染圖案布局特點和視覺特性的蠟染圖案設計方案.

圖12 子圖案在構型規則R 中的嵌入結果
在Windows 10 系統下搭建蠟染圖案設計原型系統實現圖案輪廓、圖案構型提取和轉移, 具有輪廓提取、構型規則提取、矢量圖元庫、蠟染數字資源庫、規則庫管理、蠟染圖案生成與修改、資源上傳等功能,如圖13 所示.

圖13 蠟染圖案定制系統部分界面
用戶可以在該系統自行選擇中意的構型規則與紋樣, 也可以根據自己期望的圖案語義來進行紋樣的深層次語義組合. 設計師可以在現有的資源庫中選擇適合的構型規則與紋樣進行重新組合, 可以大幅提高設計效率.
一位用戶從規則庫中選取偏好的構型規則, 從系統的紋樣庫中通過語義篩選出關于“幸福”“興旺”的紋樣元素, 隨后進入詳細定制界面, 如圖14 所示.

圖14 詳細定制界面
針對蠟染圖案的創新問題, 本文提出一種構型提取與重用的方法, 從構型和圖元的定義出發對蠟染圖案進行描述, 使用OpenCV 計算機視覺庫的相關函數和Python 語言進行蠟染圖案的輪廓提取與匹配, 根據輪廓中心位置構建鄰域關系拓撲結構圖, 然后使用標識矩陣法對紋樣進行嵌入. 該方法在實現了蠟染圖案的重用, 在一定程度上提高了蠟染圖案的創新效率. 基于構型規則重用的圖案創新設計方法可以為其他傳統圖案的創新提供一定的參考. 當前研究僅從蠟染圖案的構型方向進行圖案創新研究, 后續將在蠟染圖案的其他方向進行創新研究, 并結合大數據技術提升蠟染圖案創新設計效率.