所謂數字分割就是指將通過二值化後的圖像中的單個數字區域進行提取的過程。數字分割在數字識別中是一個必不可少的關鍵步驟,只有可以將數字進行準確的提取,才能將其一一識別。git
數字分割的方法至關多,主要有如下幾種:算法
此類方法就是對每行和每列黑色像素數進行統計,生成行直方圖和列直方圖,並採用某種閾值選取法分別對圖像進行行列分割。 這種方法簡單快速,對於按矩陣分佈的規則數字的分割效果至關好,可是沒法對不規則分佈的數字進行分割,所以具備必定的侷限性。
聚類就是一個將數據集劃分爲若干組或類的過程,經過聚類使得同一組內的數據對象具備較高的類似度,而不一樣組中的數據對象則是不類似的,因爲數字圖像的特徵正好符合這類狀況,於是可使用聚類來達到分割數字的效果。 其方法主要包括基於距離矩陣的聚類分割、k-均值聚類分割、模糊C-均值聚類分割 此類分割方法對數字的位置和大小沒有限制,很是適合對位置和大小不規則的數字進行,但這種方法也有明顯的不足,其中基於距離矩陣的聚類分割的計算量太大,尤爲是對較大的圖像,並且矩陣的佔用空間至關多,所以在實際中沒法使用。 而k-均值聚類分割、模糊C-均值聚類分割這些動態聚類雖然解決了這些問題,可是他們對於初始中心的選取極爲敏感,雖然已經有各類對於中心選取得優化算法,可是其分類個數必須人爲指定之一限制,最終使此類算法沒法應用到實際的數字分割中。
二值圖像連通區域標記是指將圖像中符合某種連通規則的目標像素點用相同的標號表示出來。 所以這種方法很是適用於數字分割,由於每一個數字自己就是一個連通區域,並且這種方法不受分類數的限制,也適用於不規則分佈的數字圖像,實現簡單快速,是一種至關好的分割方法。
而本文采用這種方法進行圖像數字區域的分割,並對其進行了適當的改進。數組
到目前爲止,二值圖像連通區域標記方法主要有如下幾類:優化
第一次掃描時, 將臨時標號存儲在一個與圖像大小同樣的二維數組中並造成等價對。 掃描結束時,經過某種搜索方法合併等價標號; 第二次掃描時, 用等價標號中最小的標號值賦予全部等價標號對應的像素點。
第一次掃描時, 將每一個目標像素點標記爲一個惟一的標號。 而後, 經過正向和反向反覆掃描標號圖像, 並在每一個像素的鄰域內傳播最小標號, 直到沒有標號變化時爲止。
依次掃描二值圖像的每個像素點。當找到某個未標記的目標像素點時, 將其壓入堆棧並從該點開始反覆標記其鄰域, 直到堆棧爲空。
考慮到數字分割僅僅是數字識別的一小步,若是在此處耗費太多的時間是至關可以不值得的,所以我採用速度相對較快的兩次掃描法進行分割。code
而在兩次掃描法中,合併等價標號是至關關鍵的一步,所以如何提升其合併速度是至關重要的,所以我主要採用以下改進的區域標記方法:對象
1. 構造一散列表,以標號做爲關鍵字進行散列,說白了就是一數組。每一個元素指向一個雙向鏈表,在鏈表中存儲同一類別的像素點座標。 2. 構造一個與圖像一樣大小的標記矩陣,用於存儲每一個像素的分類標號 3. 初始化標記矩陣,並對圖像第一行和第一列中的黑色像素進行標記,標記依次遞增,並將相應的像素點位置保存到對應標記的散列表中。 4. 依次遍歷其它各行各列,若當前像素點爲黑色,則將其左前、左上角、正上、右上角這四個鄰點中爲黑色的像素的最小標記賦給當前點,並將這四點中爲黑色的像素點歸併到最小標記中,具體歸併方法爲:將四點中爲黑色的像素點的原標記在散列表中所指向的像素鏈表與最小標記所在鏈表進行合併,並更新標記值。若其四個鄰點中沒有黑色像素點,那麼當前點屬於新類,建立一個新的標記值及相應的鏈表。 5. 若當前像素點爲白色,則標爲無效標記,繼續第(4)步。
因爲圖像或多或少會存在些許噪聲、無效塊,一般在分割前須要作一些去噪、過濾非數字區域等工做,才能達到良好的分割效果。排序
考慮到數字自己具備細長等特色,所以不太適合中值濾波這些去椒鹽噪聲的算法。get
在這我採用最簡單的離散去噪,僅僅取出一些離散噪聲點,對於其它大塊的無效區域,我經過統計分類樣本的平均高度和寬度,設定合適的閾值進行過濾,並對明顯高寬比不符合數字特徵的區域也一一進行過濾。it
從實驗結果中能夠看到,這樣的效果仍是至關好的。圖像處理
可是能夠看到,因爲是按行進行標記,所以標記好的順序對樣本區域的高度至關敏感,高低稍有不一樣,分割後就會打亂其原始的順序(尤爲是針對那些本來排列較爲規則的圖像),若要按順序分割,必須在處理後期,進行額外的排序操做才行,其具體步驟爲:
並且,區域標記的一大優勢就是對數字分佈極爲不規則的圖像的處理效果也是至關好的,能夠很好的解決數字纏繞在一塊兒,難以分割的問題,其效果以下:
雖然使用區域標記法進行分割的效果已經至關使人滿意,可是仍是存在一些不足的地方,好比說只能對具備良好連通性的數字進行分割,而對於那些具備斷層的數字就沒法實現較好的分割,爲此,在分割前須要進行額外的斷層修復,而斷層修復的過程較爲複雜,且修復效果有限。
所以,要實現具備高度通用性的數字分割算法,還有待進一步研究。
若是想要了解更多數字圖像處理相關的內容,能夠去個人書櫃看看,岡薩雷斯寫的那本書數字圖像處理仍是很是經典的。。