王昕
[摘 要]碎紙拼接技術是指利用紙質碎塊文件所攜帶的信息,對其進行準確高效的復原。針對由碎紙機規(guī)則縱切或是規(guī)則橫縱切所得碎紙片,通過碎片信息導入、圖像邊緣提取和骨架特征對比等步驟,給出了基于matlab圖像處理的拼接復原方法,以及復原最終的完整效果圖。
[關鍵詞]圖像拼接 圖像提取 膨脹算法 matlab
[中圖分類號] G642.4 [文獻標識碼] A [文章編號] 2095-3437(2015)08-0133-02
碎紙片的拼接復原問題在現(xiàn)實生活中經常碰到,其技術在司法物證復原、歷史文獻修復以及軍事情報獲取等領域都有著重要的應用。[1]
用計算機進行拼接復原時,首先要對碎片信息化,即將碎片信息導入電腦(掃描,拍照導入),其次需要進行圖像信息提取,最后采用算法對圖像信息進行處理。[2] [3]
本文主要針對兩種情況,即對于給定的來自同一頁印刷文字文件的碎紙機破碎紙片的兩種情形:僅縱切或是既縱切又橫切,建立碎紙片拼接復原模型和算法,將碎片數(shù)據(jù)進行拼接復原,并將復原結果以圖片形式表示。
其中文件僅被縱切的情形,假設每頁紙被切為19條碎片,每條碎片被編號為1000.bmp、1001.bmp、…1018.bmp,其中部分碎片如圖1所示;
■
圖1 部分縱切碎片
對于文件既被縱切又被橫切的情形,假設每頁紙被切為11×19個碎片,每個碎片被編號為2000.bmp、2001.bmp、…2208.bmp,部分碎片如圖2所示。
■
圖2 部分縱切且橫切碎片
一、縱切碎片的拼接復原
首先讀取圖像文件的信息,文檔為索引圖像,由于其索引表的RGB值在每一個索引點上都相同,所以表現(xiàn)出的是灰度不同的黑白信息。模型的任務是對圖像復原,因此在處理時只需要按簡單的灰度圖像進行處理即可,但仍有如下難點:
其一,碎片圖像輪廓特征不明顯,都為規(guī)則矩形;
其二,圖像內部特征明顯,但是算法容易出現(xiàn)錯誤(如有的行沒有文字)。
針對上述難點可采用如下方法解決[4] :
首先,用matlab圖像處理工具對其進行骨架化,直接在圖像邊沿比對骨架特征(抽取到三個像素以內),如果完全相同則說明兩張圖像有左右關系。
其次,用matlab圖像處理工具對每一個碎片進行邊緣提?。ㄏ茸雠蛎涍\算后做腐蝕運算),對碎片觀察,保持1008.bmp為復原后的最左側部分,以其右側為起始點進行邊界邏輯值比較。如果兩張圖像相似度最高,則說明兩張圖像為左右關系。
再次,創(chuàng)建圖像邊緣白布原始信息為1780*72擴展為1780*90,借助工具箱對邊緣進行相似處理,比對多出來的信息與另一圖像邊緣的相似度,如果大于某個閥值則說明兩圖像有左右關系。
最后,創(chuàng)建字體庫,提取一個圖像的邊緣上的某個文字,用字體庫的圖形陣差集,進行比對,相似度大于某個閥值說明兩張圖像有左右關系。
具體處理時,在讀入數(shù)據(jù)時將其放在Cell格式的動態(tài)結合中,由于經過處理后的碎片邊緣的值會因為邊緣外的影響而變化,即邊緣全部變?yōu)榘咨?,如圖3所示。
■
圖3 碎片邊緣圖
這樣文字的骨架可以在邊界處凸顯出來,通過對這些骨架點記錄并將其存入一個矩陣中,如
Org=[10 11 12 67 68 69 110 115 116];
如果另一個矩陣為
Tmp=[100 110 120 670 680 690 1100 1150 1160],則兩個矩陣之差的范數(shù)值一定很大。假定當前范數(shù)值為最小值,通過對最小值的不斷更新最終找出和矩陣Org范數(shù)值相差最小的碎片所在的列,即可認為兩者有左右關系。
由于可以通過肉眼觀察及簡單的算法找出最左邊一列,因此由“參照值”和“遞推公式”可以查出所有的正確圖像。該算法用了圖像處理工具箱的bwperim命令,用法如下所示。
BW2=bwperim(BW1)returns a binary image containing only the perimeter pixels of objects in the input image BW1.A pixel is part of the perimeter if it is nonzero and it is connected to at least one zero-valued pixel.The default connectivity is 4 for two dimensions,6 for three dimensions,and conndef(ndims(BW),minimal)for higher dimensions.
其功能是提取一個連通區(qū)域的邊界,由于該問題的關鍵在邊緣,而該命令在邊緣時能產生如圖3的效果,所以選擇該算法可以方便快捷的完成任務。嘗試過提取骨架,并且去除尖齒,但是效果不理想,如圖4所示,且邊緣特征信息量較大,計算方法較為復雜。
■
圖4 提取骨架效果圖
對于規(guī)則縱切問題,上述方法均可,問題的關鍵是提取文字的中心,matlab軟件有可用的工具箱,但要經過復雜的修改。
二、縱切且橫切碎片的拼接復原
當紙質文件既被縱切也被橫切之后,有兩個重要的問題出現(xiàn):
其一,復原后的左右邊界不能確定;
其二,碎片有可能在空白部分分開,分開的位置也是隨機的,從而很難用上面的方法解答。因此考慮以下解法:
首先,確定行數(shù)相同的序號,在行數(shù)相同的序號中進行類似縱切問題方法的排序。雖然沒有確定的首列,但是可以左右同時進行排序。
其次,用三個間隔固定寬度的(寬度為行間距,每兩個之間為行間距加字高)圖像進行由上到下的逐行比對,若有三個白條都比對上后,記下平移位置,最后把平移位置相同的歸為一類,即為同行。
再次,找出可能同行的序列,可用對字符中心值進行膨脹,然后再比較相同。接著排序,多出來的部分放回數(shù)據(jù)進行下一次同樣的操作。
最后,找到任意一個碎片,通過對四周進行邊緣檢測找到相鄰元素,依次遞歸計算,直到有純白的邊沿(上下)出現(xiàn)。此時通過對行間的比較確定上下純白的連接關系,如圖5所示。
■
圖5 純白連接關系效果圖
用于借助matlab工具箱提取全部碎片的文字中心位置,直接調用工具箱的命令可以進行中心提取,設定程序中的輸入?yún)?shù)為已填充的全部圖像信息,而輸出參數(shù)為每個圖像文字中心Cell型。經過算法改進后,文字填充后的效果如圖6所示,最終復原拼接文件如圖7所示。
■
圖6 改進算法效果圖
■
圖7 碎紙片復原效果圖
三、結論
圖像拼接技術作為數(shù)字圖像處理的一個重要分支,不斷與其他學科結合,其應用日益廣泛。本文主要研究了圖像拼接技術,分析了由碎紙機縱切或者橫縱切所得的碎紙片,在matlab算法支持下的拼接復原技術與方法。該方法在理論上還處于初級階段,還需對其做大量深入、細致的研究工作。
[ 注 釋 ]
[1] 陶波,于志偉,鄭筱祥.圖像的自動拼接[J].中國生物醫(yī)學工程學報,1997(4):29-35.
[2] 鐘家強,王潤生.基于邊緣的圖像配準改進算法[J].計算機工程與科學,2001(6):25-29.
[3] 羅智中.基于文字特征的文檔碎紙片半自動拼接[J].計算機工程與應用,2012(5):207-210.
[4] 楊高波,杜青松.MATLAB圖像/視頻處理應用及實例[M].電子工業(yè)出版社,2010.
[責任編輯:鐘 嵐]