1 简介
本文涉及图像识别处理领域,特别涉及基于模板匹配的OCR识别方法;将待识别图像文字切分成仅包含单个字符的子图片;将其中的数字,字母和标点符号,文字子图分别标记出来;根据待识别图像文字选择对应的字体制作特征图片;并对待识别子图片和对应类型的特征图片进行归一化处理.在此基础上,进行特征比对,将待识别的数字,字母和标点符号子图片以及文字字符子图片分别于对应类型的特征模板进行对比计算,在进对比计算时,采用相同像素位置的异或算法,统计误差频次;将误差频次最小的特征图片对应的标注作为识别结果进行输出.本发明方法实现的图像识别,计算过程简单,节省人力和物力,识别效率较高.
2 部分代码
function letter=read_letter(imagn,num_letras)% Computes the correlation between template and input image% and its output is a string containing the letter.% Size of 'imagn' must be 42 x 24 pixels% Example:% imagn=imread('D.bmp');% letter=read_letter(imagn)global templatescomp=[ ];for n=1:num_letrassem=corr2(templates{1,n},imagn);comp=[comp sem];endvd=find(comp==max(comp));%*-*-*-*-*-*-*-*-*-*-*-*-*-if vd==1letter='A';elseif vd==2letter='B';elseif vd==3letter='C';elseif vd==4letter='D';elseif vd==5letter='E';elseif vd==6letter='F';elseif vd==7letter='G';elseif vd==8letter='H';elseif vd==9letter='I';elseif vd==10letter='J';elseif vd==11letter='K';elseif vd==12letter='L';elseif vd==13letter='M';elseif vd==14letter='N';elseif vd==15letter='O';elseif vd==16letter='P';elseif vd==17letter='Q';elseif vd==18letter='R';elseif vd==19letter='S';elseif vd==20letter='T';elseif vd==21letter='U';elseif vd==22letter='V';elseif vd==23letter='W';elseif vd==24letter='X';elseif vd==25letter='Y';elseif vd==26letter='Z';%*-*-*-*-*elseif vd==27letter='1';elseif vd==28letter='2';elseif vd==29letter='3';elseif vd==30letter='4';elseif vd==31letter='5';elseif vd==32letter='6';elseif vd==33letter='7';elseif vd==34letter='8';elseif vd==35letter='9';elseletter='0';end
3 仿真结果


4 参考文献
[1]毛群, & 王少飞. (2010). 基于matlab的神经网络数字识别系统实现. 中国西部科技, 9(19), 3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
本文介绍了一种基于模板匹配的光学字符识别(OCR)方法。该方法通过将图像中的字符分割成独立子图,并与预设的字体模板进行比较来识别字符。通过归一化处理和像素异或算法统计误差频次,实现高效准确的文字识别。
2663

被折叠的 条评论
为什么被折叠?



