顧紹通
(江蘇師范大學(xué) 語言科學(xué)學(xué)院,江蘇 徐州 221009)
人們在獲取圖像的過程中,由于受到器件、環(huán)境、圖像載體本身等多種因素的影響,導(dǎo)致圖像的質(zhì)量不能達(dá)到理想要求,圖像質(zhì)量下降,甚至有些圖像十分模糊,掩蓋了所要的信息。這樣的圖像需要經(jīng)過處理達(dá)到要求之后才能使用。圖像復(fù)原技術(shù)可以滿足人們對高質(zhì)量圖像的要求。圖像復(fù)原技術(shù)在文物修復(fù)、遙感圖像處理等方面具有廣泛的應(yīng)用。
甲骨文是刻寫在龜甲和獸骨上的文字,流行于兩千多年前的商朝。由于刻寫材料是龜甲和獸骨,深埋地下數(shù)千年,已腐蝕嚴(yán)重,加上發(fā)掘出土后的損壞,字形已經(jīng)非常模糊,字形筆劃的邊緣污染嚴(yán)重,無法直接使用。目前,獲取高質(zhì)量的甲骨文字形一般有兩種途徑,第一種途徑是由著名甲骨文學(xué)者描摹書寫,這樣的甲骨文字形由于出自甲骨文專家之手,一般來說,字形逼真度很高,如郭沫若、羅振玉、董作賓、王國維等甲骨文四大家不僅在甲骨文研究上功力深厚,而且在甲骨文書法藝術(shù)上也有很高的造詣。他們的作品不僅保持了甲骨文字體風(fēng)格的原貌,同時具有很高的書法藝術(shù)價值。但是由于甲骨文四大家流傳下來的作品有限,加之有些字形在甲骨文書法藝術(shù)作品中很難找到,于是不得不從甲骨拓片中獲取。第二種途徑是直接從原始甲骨拓片中獲取字形,但是由于一般的甲骨拓片污染嚴(yán)重,因而通過這種途徑獲取的字形需要經(jīng)過復(fù)雜的處理才能使用。由于字形污染嚴(yán)重,對甲骨文字形的識讀和研究帶來很大不便,需要對甲骨拓片上的字形進(jìn)行修復(fù)處理。目前的圖像修復(fù)算法,大體可以分為偏微分方程的方法、紋理合成的方法、稀疏表示的方法。典型的偏微分方程的方法有基于整體變分的方法[1]、基于曲率的擴(kuò)散模型[2]、非局部整體變分方法[3]等。典型的紋理合成的方法有基于紋理的修復(fù)方法[4]、基于分形的修復(fù)算法[5]、圖像塊匹配置換算法[6]、小波變換與紋理合成結(jié)合的方法[7]、區(qū)域分割和擴(kuò)散相結(jié)合的方法[8]、權(quán)重變分的方法[9]。典型的基于稀疏表示的方法有稀疏形態(tài)成分分解模型[10]、在線字典學(xué)習(xí)算法[11],李民等[12]采用非局部自相似圖像塊統(tǒng)一進(jìn)行聯(lián)合稀疏表示,從而訓(xùn)練高效的字典,提高了算法的性能;Sahoo[13]等運(yùn)用局部圖像塊的稀疏近似來解決圖像修復(fù)問題;李志丹等提出基于Curvelet方向特征的稀疏表示修復(fù)方法[14]。
上述圖像修復(fù)方法都能在某種程度上較好地修復(fù)圖像,但也都存在不足之處?;谄⒎址匠痰男迯?fù)方法的思想是擴(kuò)散機(jī)制,使圖像待修復(fù)區(qū)域周圍的信息擴(kuò)散至待修復(fù)區(qū)域,因而其主要適用于劃痕等小區(qū)域的處理,當(dāng)修復(fù)區(qū)域較大時會出現(xiàn)區(qū)域模糊,修復(fù)效果不佳?;诩y理合成的修復(fù)方法原理是分析整幅圖像的紋理特征,選取與待修復(fù)區(qū)域最近似的圖像區(qū)塊來填補(bǔ)待修復(fù)區(qū)域,從而修復(fù)圖像。該方法彌補(bǔ)了偏微分方程方法的不足之處,可以有效處理圖像修復(fù)區(qū)域較大的情況,但對待修復(fù)圖像的紋理特征有一定要求,對于紋理特征不明顯的圖像修復(fù)效果較差,計算效率低。基于稀疏表示的方法通常是基于固定字典或者是字典學(xué)習(xí)的方法來修復(fù)圖像破損區(qū)域。該方法通常假定圖像的稀疏系數(shù)是隨機(jī)分布的,并沒有考慮稀疏系數(shù)的內(nèi)在聯(lián)系以及其他相關(guān)樣本圖像的信息,應(yīng)用范圍有限。
針對出土甲骨拓片上字形的特點,文中采用基于數(shù)學(xué)形態(tài)學(xué)的方法對甲骨拓片上的字形進(jìn)行計算機(jī)輔助復(fù)原。通過對甲骨拓片上字形圖像的膨脹與腐蝕操作,平滑字形圖像邊緣的凹凸形態(tài)。
數(shù)學(xué)形態(tài)學(xué)建立在集合代數(shù)基礎(chǔ)上,是分析幾何結(jié)構(gòu)和形狀的數(shù)學(xué)方法。數(shù)學(xué)形態(tài)學(xué)采用集合論的方法定量地描述幾何結(jié)構(gòu)和形狀。數(shù)學(xué)形態(tài)學(xué)由一組形態(tài)學(xué)的代數(shù)運(yùn)算子組成。通過這些算子及其組合來進(jìn)行圖像結(jié)構(gòu)的分析和處理,具體包括圖像分割、特征抽取、邊緣檢測和輪廓追蹤等。膨脹和腐蝕是數(shù)學(xué)形態(tài)學(xué)中兩種最基本的運(yùn)算。膨脹和腐蝕操作的主要作用是去除圖像結(jié)構(gòu)中多余的部分,保留感興趣的部分,同時保持圖像原有的內(nèi)部結(jié)構(gòu)不變。腐蝕和膨脹的組合運(yùn)用構(gòu)成開運(yùn)算和閉運(yùn)算。
具體來說,數(shù)學(xué)形態(tài)學(xué)中的膨脹操作可以使圖像中的目標(biāo)區(qū)域“生長”或“變粗”。膨脹操作的定義是:把結(jié)構(gòu)元素B平移s后得到Bs,若Bs擊中A,則對這個s點作標(biāo)記,滿足上述條件的所有s點組成的集合稱作A被B膨脹的結(jié)果。用公式可以表示為:D(A)={s|Bs↑A}=A⊕B。在執(zhí)行膨脹操作時,輸出的像素值是輸入的圖像相應(yīng)像素鄰域內(nèi)所有像素中的最大值。以二進(jìn)制圖像為例,假設(shè)任何像素值為1,那么對應(yīng)的輸出像素值就是1。
數(shù)學(xué)形態(tài)學(xué)中的腐蝕操作可以使圖像中的目標(biāo)“收縮”或“細(xì)化”,和膨脹操作相同,腐蝕操作也由結(jié)構(gòu)元素控制,是將結(jié)構(gòu)元素B平移a后得到Ba,若Ba包含于A,則對這個a點作標(biāo)記,滿足上述條件的所有a點組成的集合稱作A被B腐蝕的結(jié)果??梢杂霉奖硎緸椋篍(A)={a|Ba∈A}=AΘB。在腐蝕操作中,輸出的像素值是輸入圖像中相應(yīng)像素鄰域內(nèi)所有像素的最小值。同樣以二進(jìn)制圖像為例,若任輸入圖像中任意一個像素值均為0,那么對應(yīng)的輸出像素值也為0。
在數(shù)學(xué)形態(tài)學(xué)中,開運(yùn)算和閉運(yùn)算是兩個最為重要的組合運(yùn)算。開運(yùn)算和閉運(yùn)算可以通過腐蝕操作和膨脹操作的組合來定義。對幾何形狀先進(jìn)行腐蝕操作再進(jìn)行膨脹操作稱為開運(yùn)算,可表示為OPEN(X)=D(E(X))。開運(yùn)算的作用在于可以消除散點和毛刺,利用這一特性對圖像進(jìn)行平滑。對幾何形狀先進(jìn)行膨脹操作再進(jìn)行腐蝕操作稱為閉運(yùn)算,可以表示為CLOSE(X)=E(D(X))。閉運(yùn)算的作用在于可以使目標(biāo)區(qū)域擴(kuò)大,因而可以利用這一特性,通過選擇適當(dāng)?shù)脑亟Y(jié)構(gòu)通過閉運(yùn)算將兩個鄰近的目標(biāo)區(qū)域連接起來。
從上面對開運(yùn)算和閉運(yùn)算的描述可以看出,開運(yùn)算可以使目標(biāo)區(qū)域變小,閉運(yùn)算則可以使目標(biāo)區(qū)域增大。開運(yùn)算和閉運(yùn)算有一個共同的特點,一次濾波就可以把所有特定于結(jié)構(gòu)元素的噪聲濾除干凈,重復(fù)運(yùn)算則不會再有效果。
由于甲骨文是刻寫在龜甲和獸骨上,龜甲和獸骨本身并非光滑如紙,因而刻寫在上面的文字筆劃并非光滑圓潤。經(jīng)過兩千多年的地下埋藏被發(fā)掘出來后,字形邊緣已非常模糊。
圖1為原始甲骨拓片及字形圖像。
圖1 原始甲骨拓片及字形
從圖像上看,字形邊緣非常粗糙,鋸齒狀非常明顯。以豎直方向為例,在字形邊緣上,有的地方向外突起,有的地方則向內(nèi)凹陷。因此,在執(zhí)行膨脹操作時,需要具體分析。在向外突起的地方,由于本身已突起,是圖像上噪聲引起的,如果再執(zhí)行膨脹操作,則會使原來突起的地方更加尖銳。因此,對于本身已突起的地方,就不再需要執(zhí)行膨脹操作了。對于如何判定突起的地方,作如下處理:掃描圖像邊緣,對于那些符合條件的點判定為特征點,即突起的點,可以通過一個點與相鄰的兩點夾角θ計算出來。夾角θ計算如下:
設(shè)M是夾角θ的閾值,如果θ≤M,系統(tǒng)就認(rèn)為點Pi是突起點。采用這種方式可以把所有的突起點都提取出來,方法如圖2所示。圖3是提取到的字形圖像上的突起點。
圖2 突起點的提取方法
圖3 提取到的突起點
水平方向上的突起點的提取與豎直方向上突起點的提取方法類似。這里就不再重復(fù)。對于斜線上的突起點,也可以仿此建立坐標(biāo)系,分別處理。
綜上所述,甲骨文字分形配準(zhǔn)算法如下:
Step1:對輸入字形圖像進(jìn)行去噪處理,得到二值圖像;
Step2:對豎直方向的筆劃邊緣進(jìn)行數(shù)學(xué)形態(tài)學(xué)操作;
Step3:對水平方向的筆劃邊緣進(jìn)行數(shù)學(xué)形態(tài)學(xué)操作;
Step4:對斜線方向的筆劃邊緣進(jìn)行數(shù)學(xué)形態(tài)學(xué)操作;
Step5:輸出處理后的字形圖像。
在Windows環(huán)境下主頻3.30 GHz的雙處理器計算機(jī)上,利用Visual C++ 2010和OpenCV2.4實現(xiàn)了以上算法,設(shè)計并實現(xiàn)了基于數(shù)學(xué)形態(tài)學(xué)的甲骨拓片字形復(fù)原系統(tǒng)。圖4和圖5分別展示了復(fù)原前和復(fù)原后的字形圖像。從圖上可以看出,復(fù)原處理前的字形圖像邊緣非常粗糙,有很多突出的細(xì)小毛刺。經(jīng)過高斯濾波后復(fù)原的字形圖像,邊緣平滑了很多。
(a)甲骨文原始字形 (b)復(fù)原處理后的字形
從實驗結(jié)果可以看出,經(jīng)過形態(tài)學(xué)操作后,圖像邊緣得到了一定程度的平滑。隨著平滑操作的繼續(xù)進(jìn)行,圖像邊緣在得到平滑的同時,邊緣特征的信息也會相應(yīng)退化。因此,在執(zhí)行形態(tài)學(xué)操作后,需要選擇合適的閾值,從而得到預(yù)期的結(jié)果。
在分析甲骨拓片字形特點的基礎(chǔ)上,提出了一種基于數(shù)學(xué)形態(tài)學(xué)的甲骨拓片字形圖像復(fù)原方法。首先介紹了數(shù)學(xué)形態(tài)學(xué)的基本原理,并針對甲骨拓片字形的特點,運(yùn)用數(shù)學(xué)形態(tài)學(xué)對字形圖像進(jìn)行一系列運(yùn)算,進(jìn)而對甲骨拓片字形圖像邊緣進(jìn)行平滑。實驗結(jié)果表明,該方法對甲骨拓片字形圖像的復(fù)原有一定的效果。