顧紹通
(江蘇師范大學 語言科學學院,江蘇 徐州 221009)
人們在獲取圖像的過程中,由于受到器件、環境、圖像載體本身等多種因素的影響,導致圖像的質量不能達到理想要求,圖像質量下降,甚至有些圖像十分模糊,掩蓋了所要的信息。這樣的圖像需要經過處理達到要求之后才能使用。圖像復原技術可以滿足人們對高質量圖像的要求。圖像復原技術在文物修復、遙感圖像處理等方面具有廣泛的應用。
甲骨文是刻寫在龜甲和獸骨上的文字,流行于兩千多年前的商朝。由于刻寫材料是龜甲和獸骨,深埋地下數千年,已腐蝕嚴重,加上發掘出土后的損壞,字形已經非常模糊,字形筆劃的邊緣污染嚴重,無法直接使用。目前,獲取高質量的甲骨文字形一般有兩種途徑,第一種途徑是由著名甲骨文學者描摹書寫,這樣的甲骨文字形由于出自甲骨文專家之手,一般來說,字形逼真度很高,如郭沫若、羅振玉、董作賓、王國維等甲骨文四大家不僅在甲骨文研究上功力深厚,而且在甲骨文書法藝術上也有很高的造詣。他們的作品不僅保持了甲骨文字體風格的原貌,同時具有很高的書法藝術價值。但是由于甲骨文四大家流傳下來的作品有限,加之有些字形在甲骨文書法藝術作品中很難找到,于是不得不從甲骨拓片中獲取。第二種途徑是直接從原始甲骨拓片中獲取字形,但是由于一般的甲骨拓片污染嚴重,因而通過這種途徑獲取的字形需要經過復雜的處理才能使用。由于字形污染嚴重,對甲骨文字形的識讀和研究帶來很大不便,需要對甲骨拓片上的字形進行修復處理。目前的圖像修復算法,大體可以分為偏微分方程的方法、紋理合成的方法、稀疏表示的方法。典型的偏微分方程的方法有基于整體變分的方法[1]、基于曲率的擴散模型[2]、非局部整體變分方法[3]等。典型的紋理合成的方法有基于紋理的修復方法[4]、基于分形的修復算法[5]、圖像塊匹配置換算法[6]、小波變換與紋理合成結合的方法[7]、區域分割和擴散相結合的方法[8]、權重變分的方法[9]。典型的基于稀疏表示的方法有稀疏形態成分分解模型[10]、在線字典學習算法[11],李民等[12]采用非局部自相似圖像塊統一進行聯合稀疏表示,從而訓練高效的字典,提高了算法的性能;Sahoo[13]等運用局部圖像塊的稀疏近似來解決圖像修復問題;李志丹等提出基于Curvelet方向特征的稀疏表示修復方法[14]。
上述圖像修復方法都能在某種程度上較好地修復圖像,但也都存在不足之處。基于偏微分方程的修復方法的思想是擴散機制,使圖像待修復區域周圍的信息擴散至待修復區域,因而其主要適用于劃痕等小區域的處理,當修復區域較大時會出現區域模糊,修復效果不佳。基于紋理合成的修復方法原理是分析整幅圖像的紋理特征,選取與待修復區域最近似的圖像區塊來填補待修復區域,從而修復圖像。該方法彌補了偏微分方程方法的不足之處,可以有效處理圖像修復區域較大的情況,但對待修復圖像的紋理特征有一定要求,對于紋理特征不明顯的圖像修復效果較差,計算效率低。基于稀疏表示的方法通常是基于固定字典或者是字典學習的方法來修復圖像破損區域。該方法通常假定圖像的稀疏系數是隨機分布的,并沒有考慮稀疏系數的內在聯系以及其他相關樣本圖像的信息,應用范圍有限。
針對出土甲骨拓片上字形的特點,文中采用基于數學形態學的方法對甲骨拓片上的字形進行計算機輔助復原。通過對甲骨拓片上字形圖像的膨脹與腐蝕操作,平滑字形圖像邊緣的凹凸形態。
數學形態學建立在集合代數基礎上,是分析幾何結構和形狀的數學方法。數學形態學采用集合論的方法定量地描述幾何結構和形狀。數學形態學由一組形態學的代數運算子組成。通過這些算子及其組合來進行圖像結構的分析和處理,具體包括圖像分割、特征抽取、邊緣檢測和輪廓追蹤等。膨脹和腐蝕是數學形態學中兩種最基本的運算。膨脹和腐蝕操作的主要作用是去除圖像結構中多余的部分,保留感興趣的部分,同時保持圖像原有的內部結構不變。腐蝕和膨脹的組合運用構成開運算和閉運算。
具體來說,數學形態學中的膨脹操作可以使圖像中的目標區域“生長”或“變粗”。膨脹操作的定義是:把結構元素B平移s后得到Bs,若Bs擊中A,則對這個s點作標記,滿足上述條件的所有s點組成的集合稱作A被B膨脹的結果。用公式可以表示為:D(A)={s|Bs↑A}=A⊕B。在執行膨脹操作時,輸出的像素值是輸入的圖像相應像素鄰域內所有像素中的最大值。以二進制圖像為例,假設任何像素值為1,那么對應的輸出像素值就是1。
數學形態學中的腐蝕操作可以使圖像中的目標“收縮”或“細化”,和膨脹操作相同,腐蝕操作也由結構元素控制,是將結構元素B平移a后得到Ba,若Ba包含于A,則對這個a點作標記,滿足上述條件的所有a點組成的集合稱作A被B腐蝕的結果。可以用公式表示為:E(A)={a|Ba∈A}=AΘB。在腐蝕操作中,輸出的像素值是輸入圖像中相應像素鄰域內所有像素的最小值。同樣以二進制圖像為例,若任輸入圖像中任意一個像素值均為0,那么對應的輸出像素值也為0。
在數學形態學中,開運算和閉運算是兩個最為重要的組合運算。開運算和閉運算可以通過腐蝕操作和膨脹操作的組合來定義。對幾何形狀先進行腐蝕操作再進行膨脹操作稱為開運算,可表示為OPEN(X)=D(E(X))。開運算的作用在于可以消除散點和毛刺,利用這一特性對圖像進行平滑。對幾何形狀先進行膨脹操作再進行腐蝕操作稱為閉運算,可以表示為CLOSE(X)=E(D(X))。閉運算的作用在于可以使目標區域擴大,因而可以利用這一特性,通過選擇適當的元素結構通過閉運算將兩個鄰近的目標區域連接起來。
從上面對開運算和閉運算的描述可以看出,開運算可以使目標區域變小,閉運算則可以使目標區域增大。開運算和閉運算有一個共同的特點,一次濾波就可以把所有特定于結構元素的噪聲濾除干凈,重復運算則不會再有效果。
由于甲骨文是刻寫在龜甲和獸骨上,龜甲和獸骨本身并非光滑如紙,因而刻寫在上面的文字筆劃并非光滑圓潤。經過兩千多年的地下埋藏被發掘出來后,字形邊緣已非常模糊。
圖1為原始甲骨拓片及字形圖像。

圖1 原始甲骨拓片及字形
從圖像上看,字形邊緣非常粗糙,鋸齒狀非常明顯。以豎直方向為例,在字形邊緣上,有的地方向外突起,有的地方則向內凹陷。因此,在執行膨脹操作時,需要具體分析。在向外突起的地方,由于本身已突起,是圖像上噪聲引起的,如果再執行膨脹操作,則會使原來突起的地方更加尖銳。因此,對于本身已突起的地方,就不再需要執行膨脹操作了。對于如何判定突起的地方,作如下處理:掃描圖像邊緣,對于那些符合條件的點判定為特征點,即突起的點,可以通過一個點與相鄰的兩點夾角θ計算出來。夾角θ計算如下:

設M是夾角θ的閾值,如果θ≤M,系統就認為點Pi是突起點。采用這種方式可以把所有的突起點都提取出來,方法如圖2所示。圖3是提取到的字形圖像上的突起點。

圖2 突起點的提取方法

圖3 提取到的突起點
水平方向上的突起點的提取與豎直方向上突起點的提取方法類似。這里就不再重復。對于斜線上的突起點,也可以仿此建立坐標系,分別處理。
綜上所述,甲骨文字分形配準算法如下:
Step1:對輸入字形圖像進行去噪處理,得到二值圖像;
Step2:對豎直方向的筆劃邊緣進行數學形態學操作;
Step3:對水平方向的筆劃邊緣進行數學形態學操作;
Step4:對斜線方向的筆劃邊緣進行數學形態學操作;
Step5:輸出處理后的字形圖像。
在Windows環境下主頻3.30 GHz的雙處理器計算機上,利用Visual C++ 2010和OpenCV2.4實現了以上算法,設計并實現了基于數學形態學的甲骨拓片字形復原系統。圖4和圖5分別展示了復原前和復原后的字形圖像。從圖上可以看出,復原處理前的字形圖像邊緣非常粗糙,有很多突出的細小毛刺。經過高斯濾波后復原的字形圖像,邊緣平滑了很多。

(a)甲骨文原始字形 (b)復原處理后的字形
從實驗結果可以看出,經過形態學操作后,圖像邊緣得到了一定程度的平滑。隨著平滑操作的繼續進行,圖像邊緣在得到平滑的同時,邊緣特征的信息也會相應退化。因此,在執行形態學操作后,需要選擇合適的閾值,從而得到預期的結果。
在分析甲骨拓片字形特點的基礎上,提出了一種基于數學形態學的甲骨拓片字形圖像復原方法。首先介紹了數學形態學的基本原理,并針對甲骨拓片字形的特點,運用數學形態學對字形圖像進行一系列運算,進而對甲骨拓片字形圖像邊緣進行平滑。實驗結果表明,該方法對甲骨拓片字形圖像的復原有一定的效果。