由於英文本母有26個,因此在對這26個字母進行識別時要採用多種方式結合進行識別;
1:採用是否含有封閉區域來區分:
可以分辨出b,d,q,r,o,p,a;
具體使用演算法:
採用填充演算法,如果不能填充則說明不存在封閉區域;
具體演算法:
將字母二值化處理,從其中任意一畫素點出發,沿著水平方向(或者垂直方向)辨別是否畫素值與第乙個相等,並記錄畫素點位置,當找不到相同的畫素值時,採用八領域法繼續查詢,如果最終可以回到第乙個畫素點的位置,則證明存在封閉區域,可以進行填充;
b:由於有兩個封閉區域,可以區分出來;
採用統計畫素點個數可以將a,(q,o),r,p,d分辨出來
o,q,採用垂直掃瞄線掃瞄方式進行處理,o與掃瞄線只有0,1,2這3個交點情況;
q則要多於3個交點的情況;
2:檢測與垂直掃瞄線交點值是否大於某個閾值:
可以分辨出e,f,h,i,j,k,l,m,n,t,u,y;
具體使用演算法:
將字母二值化,通過垂直掃瞄線掃瞄檢測是否存在畫素點個數大於閾值(自行設定),如果存在,記錄有幾條這樣的線;
偽碼如下:
int k;(二值化的閾值)
if(data>k) data=255;
else data=0;
for(j = 0; j int count1=0,count2=0;
for(i = 0; i < nw; i++)
if(this->m_pdata[i*nw+ j]==0)
count1++;
if(count1>300)
count2++
(n,h,u,m)有多條大於閾值的線存在;
水平掃瞄線,m大部分與水平掃瞄線有4個交點,n大部分與水平掃瞄線有3個交點,h大部分與水平掃瞄線有2個交點,且h存在多個交點的情況;u與水平掃瞄線有2個交點或1個交點;
e:垂直掃瞄線時有3個交點的情況存在;
(f,k):垂直掃瞄線時有2個交點的情況存在;
採用統計畫素點個數分別將這3個分辨出來
(j,l,t,y,i)統計畫素點可以分辨出j,y(l,t),i;
(l,t)根據字母水平線一上一下的位置來確定;
3:統計畫素點個數;
可以分辨出c,g,w,s,(v,x),z;
(v,x)垂直掃瞄線掃瞄與垂直掃瞄線只有乙個交點的是v,
另乙個為x;
字元識別(字串處理)
描述 中南林業科技大學計算機與資訊工程學院某位老師開發乙個字元識別程式.這個程式用來將紙質文件轉換為電子版.很顯然,這個轉換過程不能保證100 正確,其中有些字元不能識別.你的任務是寫乙個程式幫助這位老師計算識別的效率.識別的效率用公式r a進行計算,其中r表示被成功識別的字元總數,a表示識別的字元...
車牌識別字元模板庫
車牌識別字元模板庫 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式...
識別字串 Python3
識別字串 是 lintcode 詳見 lintcode介紹 所提供的一道 簡單 級別的面試題,現在我對python3的實現做以簡單分析,如有不妥之處,歡迎指正。給定一組n個僅包含小寫字母的字串,為每個字串找出能夠唯一識別該字串的最小字首 即可以識別a串的最小字首ap,不會是其他n 1個字串的字首。1...