由于英文字母有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) d