簡介
傾斜校正主要有兩種,一種是整體傾斜校正,另一種是局部傾斜校正。
由于本文主要研究具有不規則分布的多數字識別,因此只需要關注經過提取后的數字校正問題,也就是圖像的局部校正。
矯正算法
目前的校正算法有很多,比如說:
對于整體傾斜校正可以采用統計圖像左右兩邊的平均像素高度,通過計算整體傾斜度來進行校正。
這種方法對于像素較多的圖像的處理效果明顯,而且實現簡單快速,但是對于那些已經經過提取得單一數字圖像并不適用,因為此時的圖像一般較小,且筆畫較細,由于所需信息太少統計后的結果并不正確。
其實校正的核心就是使圖像的傾斜度的接近為0,因此可以把它看作是一個最優化問題:
即尋找需要調整多少角度,才能使圖像的傾斜度最小,可見傾斜度決定了最終圖像的好壞,考慮的數字的特征,都是具有狹長的特點,我們可以考慮將圖像的高寬比最為圖像傾斜度的依據。
而到底需要調整多少才合適呢,本文所采用的方法,并不估算圖像的傾斜度,而是通過二分搜索
的思想,在傾斜45度的范圍內進行二分查找,尋找最佳調整點,使其結果近似最優,其具體步驟如下:
1. 設置最大調整角度,一般傾斜度不會超過45度,如果超過調整也就沒有意義了。
2. 計算圖像高寬比,也就是傾斜度,如果傾斜度比上次的有所減小,則調整角度減半,繼續搜索,如果傾斜度趨于穩定,則退出查找,并使用此時的調整角度進行調整。
3. 對于實際的調整過程,一般會選擇進行旋轉變換操作,比較簡單,但是考慮到實際人們書寫數字時的傾斜往往并不是旋轉造成的,而是可能姿勢不正而引起的側斜,因此僅僅通過旋轉并不能達到較好的效果,因此可以通過水平側向校正來實現,即保持像素點的高度不變,僅僅通過調整水平位置,進行適當的調整。
實驗結果
correct_slope
總結
可見,對于大多數數字圖像的校正結果還是令人相當滿意的,但還是會有些許不足:
由于側向拉伸會導致圖像的變形,因此對于較為細長的圖像的處理效果較差,可能會出現斷層這些破壞連通性的情況。
為了解決此類問題,可以在校正前先進行適當的膨脹運算操作,這樣效果會好些。
個人主頁:TBOOX開源項目
原文出處:http://tboox.org/cn/2016/08/01/hnr-correct-slope/