引言
所謂數字分割就是指將經過二值化后的圖像中的單個數字區域進行提取的過程。數字分割在數字識別中是一個必不可少的關鍵步驟,只有能夠將數字進行准確的提取,才能將其一一識別。
數字分割的方法
數字分割的方法相當多,主要有以下幾種:
基於直方圖的分割
此類方法就是對每行和每列黑色像素數進行統計,生成行直方圖和列直方圖,並采用某種閾值選取法分別對圖像進行行列分割。
這種方法簡單快速,對於按矩陣分布的規則數字的分割效果相當好,但是無法對不規則分布的數字進行分割,因此具有一定的局限性。
基於聚類的分割
聚類就是一個將數據集划分為若干組或類的過程,通過聚類使得同一組內的數據對象具有較高的相似度,而不同組中的數據對象則是不相似的,由於數字圖像的特征正好符合這類情況,因而可以使用聚類來達到分割數字的效果。
其方法主要包括基於距離矩陣的聚類分割、k-均值聚類分割、模糊C-均值聚類分割
此類分割方法對數字的位置和大小沒有限制,非常適合對位置和大小不規則的數字進行,但這種方法也有明顯的不足,其中基於距離矩陣的聚類分割的計算量太大,尤其是對較大的圖像,而且矩陣的占用空間相當多,因此在實際中無法使用。
而k-均值聚類分割、模糊C-均值聚類分割這些動態聚類雖然解決了這些問題,但是他們對於初始中心的選取極為敏感,雖然已經有各種對於中心選取得優化算法,但是其分類個數必須人為指定之一限制,最終使此類算法無法應用到實際的數字分割中。
基於二值圖像連通區域標記的分割
二值圖像連通區域標記是指將圖像中符合某種連通規則的目標像素點用相同的標號表示出來。
因此這種方法非常適用於數字分割,因為每個數字本身就是一個連通區域,而且這種方法不受分類數的限制,也適用於不規則分布的數字圖像,實現簡單快速,是一種相當好的分割方法。
而本文采用這種方法進行圖像數字區域的分割,並對其進行了適當的改進。
到目前為止,二值圖像連通區域標記方法主要有以下幾類:
- 兩次掃描法
第一次掃描時, 將臨時標號存儲在一個與圖像大小一樣的二維數組中並形成等價對。
掃描結束時,通過某種搜索方法合並等價標號; 第二次掃描時, 用等價標號中最小的標號值賦予所有等價標號對應的像素點。
- 雙向反復掃描法:
第一次掃描時, 將每個目標像素點標記為一個唯一的標號。
然后, 通過正向和反向反復掃描標號圖像, 並在每個像素的鄰域內傳播最小標號, 直到沒有標號變化時為止。
- 區域增長法
依次掃描二值圖像的每一個像素點。當找到某個未標記的目標像素點時, 將其壓入堆棧並從該點開始反復標記其鄰域, 直到堆棧為空。
考慮到數字分割僅僅是數字識別的一小步,如果在此處耗費太多的時間是相當能夠不值得的,因此我采用速度相對較快的兩次掃描法進行分割。
而在兩次掃描法中,合並等價標號是相當關鍵的一步,因此如何提高其合並速度是相當重要的,因此我主要采用如下改進的區域標記方法:
1. 構造一散列表,以標號作為關鍵字進行散列,說白了就是一數組。每個元素指向一個雙向鏈表,在鏈表中存儲同一類別的像素點坐標。
2. 構造一個與圖像同樣大小的標記矩陣,用於存儲每個像素的分類標號
3. 初始化標記矩陣,並對圖像第一行和第一列中的黑色像素進行標記,標記依次遞增,並將相應的像素點位置保存到對應標記的散列表中。
4. 依次遍歷其它各行各列,若當前像素點為黑色,則將其左前、左上角、正上、右上角這四個鄰點中為黑色的像素的最小標記賦給當前點,並將這四點中為黑色的像素點歸並到最小標記中,具體歸並方法為:將四點中為黑色的像素點的原標記在散列表中所指向的像素鏈表與最小標記所在鏈表進行合並,並更新標記值。若其四個鄰點中沒有黑色像素點,那么當前點屬於新類,創建一個新的標記值及相應的鏈表。
5. 若當前像素點為白色,則標為無效標記,繼續第(4)步。
過濾無效區域
由於圖像或多或少會存在些許噪聲、無效塊,通常在分割前需要做一些去噪、過濾非數字區域等工作,才能達到良好的分割效果。
考慮到數字本身具有細長等特點,因此不太適合中值濾波這些去椒鹽噪聲的算法。
在這我采用最簡單的離散去噪,僅僅取出一些離散噪聲點,對於其它大塊的無效區域,我通過統計分類樣本的平均高度和寬度,設定合適的閾值進行過濾,並對明顯高寬比不符合數字特征的區域也一一進行過濾。
從實驗結果中可以看到,這樣的效果還是相當好的。
實驗結果

但是可以看到,由於是按行進行標記,因此標記好的順序對樣本區域的高度相當敏感,高低稍有不同,分割后就會打亂其原始的順序(尤其是針對那些原本排列較為規則的圖像),若要按順序分割,必須在處理后期,進行額外的排序操作才行,其具體步驟為:
- 將原先按標記散列的分類圖像,轉化為按區域圖像中心的矩陣散列,此時生成的矩陣為稀疏矩陣,只有位於區域中心的點指向所對應的數字圖像
- 按一定的閾值把矩陣按行切分,由於矩陣中的點角為稀疏,因此閾值較為好取,分割效果也較好,不需要過多的進行優化,就能達到很好的效果。
- 對每行的區域圖像按中心位置的橫坐標值進行排序,即可恢復原先的數字分布。其效果如下:

而且,區域標記的一大優點就是對數字分布極為不規則的圖像的處理效果也是相當好的,可以很好的解決數字纏繞在一起,難以分割的問題,其效果如下:

總結
雖然使用區域標記法進行分割的效果已經相當令人滿意,但是還是存在一些不足的地方,比如說只能對具有良好連通性的數字進行分割,而對於那些具有斷層的數字就無法實現較好的分割,為此,在分割前需要進行額外的斷層修復,而斷層修復的過程較為復雜,且修復效果有限。
因此,要實現具有高度通用性的數字分割算法,還有待進一步研究。
參考文獻
如果想要了解更多數字圖像處理相關的內容,可以去我的書櫃看看,岡薩雷斯寫的那本書數字圖像處理還是非常經典的。。
個人主頁:TBOOX開源工程
原文出處:http://www.tboox.org/cn/2016/07/30/hnr-extract-digital/
