一種英文單詞OCR的演算法

2021-05-25 12:31:43 字數 1282 閱讀 6715

最近一段時間,本人寫了乙個關於英文單詞的光學字元識別演算法(只是針對印刷體的識別),因為這是我的第一次嘗試,所以會有很多不足之處,因此小弟在此給出自己的實現方法,希望大家能夠給我一些寶貴的建議。

我的識別演算法是在wm手機上實現的(呵呵,該系統已經落伍了,就是自己有個手機,試著玩一下)。我首先對拍攝的影象進行二值化處理,後來發現雜訊點不是很多,就忽略了除噪步驟,然後我根據x軸的統計特徵,對字元進行了垂直分割,然後又根據y軸的統計特徵進行了水平分割,在此過程中獲取了字元的長度和高度資訊,然後也沒有做歸一化處理(本人比較懶吧)。

下一步就是對單個字元進行識別了,在識別的過程中,我採用了分類的思想,希望盡量少一些處理少一些匹配的次數。我首先根據基於x軸的統計特徵首先對字元進行了分類。基於x軸的統計資料會出現三個峰,兩個峰,乙個峰,以及零個峰的特徵,我便是利用這個特徵首先對字母進行了粗略的分析。

具有三個峰的字元只有m乙個,所以這樣就簡單的識別出了m;兩個峰中,我又進行了一次劃分,分別為峰值等高:u,n,o,s,g;左高右低:h,b,p,c,e;左低右高:q,d,a。

然後又從字元的中間進行了一次穿越,並記錄了穿越中的最後乙個交點的位置,這樣又會獲得1,2,3,4個交點及最後乙個交點的位置的特徵,為此將峰值特徵與中間穿越所獲得的特徵進行組合,便可以在等高峰值這一組中識別出o,s,g,然後再根據交點的位置進行區分u和n;餘下兩組的識別方式相同,在此我就不做過多說明了。

識別的過程中,比較頭痛的是只有乙個峰值的這一組:i,j,k,l,r,t。在該組中,我又重新制定了識別策略,首先根據y軸的統計特徵,可以將i和j成功的分離出來,並進行左邊緣的垂直穿越,然後根據j的那個小勾來識別i與j。經過這些處理之後,還有k,l,r,t這4個字母,於是我又進行了一次1/3高處的水平穿越,根據k有2個交點,將k識別出來。餘下的l,r,t我又在字元寬的2/3處進行了一次垂直穿越,為此又將l識別出來,餘下了r,t之後我對字母的右邊緣進行了垂直穿越,這個時候根據交點的位置,將t與r進行了區分。

至此,還有5個沒有峰值的字母等待識別了:x,y,z,v,w。這幾個字母感覺還比較容易識別,我在1/3高處進行了一次水平穿越,根據4,2,1個交點的特徵,識別出了w,並將x與v劃分為一組,z和y劃分為一組,在x和v這一組中,在字元寬1/3處進行了垂直穿越,根據2和1的交點個數識別出了x和v。

然後在z和y一組中,在2/3字高處進行了水平穿越,為此又根據2和1的特徵識別出了y和z,至此,小寫的光學字元識別已經結束了。

該演算法是已經寫好了,目前正在進行測試,發現對m,u,n,c,g,h,o等字母的識別效果好,為此還需要進一步的改進,我將在後期進行進一步的完善,在此也希望廣大的it博友給我指點,祝我一臂之力來完成這個能夠適合在嵌入式裝置上執行的識別演算法。

python中的英文單詞

list是乙個可變的有序表,所以,可以往list中追加元素到末尾 classmates michael bob tracy adam 也可以把元素插入到指定的位置,比如索引號為1的位置 classmates.insert 1,jack classmates michael jack bob trac...

英文單詞Advanced的意思

iamlaosong文 倉儲系統wms中有個asn的概念,asn的英文是advanced shipping notice,直譯就是提前裝運通知,又叫預期收貨通知。預期收貨通知通常被用於倉庫中的實際收貨,能減少資料輸入時間和簡化收貨流程。advanced的意思印象中就是高階的 先進的,這兒的意思是提前...

歌曲中的英文單詞

glory n.光榮,榮譽 對上帝的 贊 美 頌 壯麗 觀 輝煌,燦爛 可讚美 誇耀 的事 繁榮,昌盛 興致勃勃,得意揚揚 宗 天國的榮譽,天福 神像後的 光輪 日 月 華,日冕 the glory of the sunset 落日的壯觀 distress n.苦惱 痛苦 窮困 貧苦 危難,不幸 律...