本文主要是介绍Matlab字符识别实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Matlab 字符识别OCR实验
图像来源于屏幕截图,要求黑底白字。数据来源是任意二进制文件,内容以16进制打印输出,'0-9a-f’字符被16个可打印字符替代,这些替代字符经过挑选,使其相对容易被识别。
第一步进行线分割和字符分割。因来源于屏幕截图,所以横平竖直。首先灰度图放大2倍并被二值化,然后在X(W)方向上像素求和,这样可以确定线分割精确位置,取多条线(20条)的子图,在Y(H)方向上进行像素求和,可大体确定字符间分割位置,在字符切割过程中,针对不同字符在此基础上可做左右精细调整。
第二步逐行逐字符模式匹配识别。对切割出的字符,在16个字符模板中进行匹配,取相似度最高的作为识别结果。匹配可采用二维模板匹配。这里出于效率考虑,用X和Y方向像素求和曲线作为字符特征,和切割字符的曲线进行比较,识别率几乎100%。曲线比较逻辑: 首先曲线归一化和对齐,然后用两条曲线的SAD做相似度度量,数值越小相似度越高
细节
SAD做相似度度量,受图像采集等因素影响,鲁棒性不强。通过训练一个浅层神经网络做识别,准确率100%,神奇!应该是特征向量选得好!
这篇关于Matlab字符识别实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!