图像描述:
单张图片,信息量比较大,字符区域明显。
样本以及待识别的样本的处理过程:
首先二值化,阈值100时的效果图。
第一步:检测图像Blob块,去掉图像左上端的黑快
方法:直接对二值图像进行从左上开始的像素扫描,连续的黑色像素值,遇到白像素时停止扫描,然后对扫描遇到的黑色像素点赋值为白色像素。
第二步:确定字符在竖直方向上的跨度:
将图像对竖直方向上做投影,确定竖直方向上的像素区间,根据区间,可以将字符分成三块。
这样得到竖直方向的区域。
水平区域类似处理:
第三步:针对序列号进行细分割,做向下方向的投影,由于数字和汉子的宽度不一样,通过阈值可以区分出一个一个的数字。
第四步:对分割出来的数字在分别做水平方向和垂直方向的一阶差分,进一步得到单个字符区域的图像。
这里比如 可能会出现中间断裂的情况,这时候可以通过先验知识,数字的大致长宽作为阈值,分割得到3.
第五步:对要识别的数字进行样本归一化处理,比如都取20*10的像素比。
第六步:对归一化后的待识别样本提取特征,这里由于识别的内容比较简单,直接采取像素值作为特征即可,这里的方式很多种,比如采用
将样本分成8*4共32块,统计每一块中的黑色像素所占的每一块中总像素值的比率,作为特征值,这样,每一个待识别的样本就有一组一行32列的数组作为特征。
第七步:样本制作以及样本的库的处理:
样本的前期处理和对待测样本的处理思路一样,同上4-6步。这里样本集的大小尽量为待测样本特征的5—10倍。识别数字3,我们制作32*5个的样本集,10个数字就是10*32*5个样本集。
第八步:对样本集和待测的样本提取的特征进行PCA主成分分析,根据贡献率提取主要的特征即前m个分量。
识别部分:
第九步:将待测样本与样本集比较,做识别。
这里方法很多了,我们采用比较简单的,模板匹配法,利用距离测度函数计算。
这里的距离可以用欧氏距离,马氏距离,明氏距离等等,我们采用最简单的欧氏距离D(i,j)=(Xi-Xj)T(Xi-Xj)-||Xi-Xj||2
D(i,j)越小,两类之间的距离越近。通过阈值判断样本Xi属于哪一类。
或者采用Bayes,BP神经网络,感知器等等,不在这里说明了。
针对液晶字符和液晶字符前杠的识别,可以采用类似的思路。还有一种简单的Bolb块的方式,参考http://www.cnblogs.com/xiaotie/archive/2010/05/23/1741946.html
具体思路还有很多种,具体问题具体分析。