【字符识别】基于模板匹配(区域生长法)字母+数字识别含Matlab源码

本文介绍了一种基于模板匹配的光学字符识别(OCR)方法。该方法通过将图像中的字符分割成独立子图,并与预设的字体模板进行比较来识别字符。通过归一化处理和像素异或算法统计误差频次,实现高效准确的文字识别。

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_letras    sem=corr2(templates{1,n},imagn);    comp=[comp sem];endvd=find(comp==max(comp));%*-*-*-*-*-*-*-*-*-*-*-*-*-if vd==1    letter='A';elseif vd==2    letter='B';elseif vd==3    letter='C';elseif vd==4    letter='D';elseif vd==5    letter='E';elseif vd==6    letter='F';elseif vd==7    letter='G';elseif vd==8    letter='H';elseif vd==9    letter='I';elseif vd==10    letter='J';elseif vd==11    letter='K';elseif vd==12    letter='L';elseif vd==13    letter='M';elseif vd==14    letter='N';elseif vd==15    letter='O';elseif vd==16    letter='P';elseif vd==17    letter='Q';elseif vd==18    letter='R';elseif vd==19    letter='S';elseif vd==20    letter='T';elseif vd==21    letter='U';elseif vd==22    letter='V';elseif vd==23    letter='W';elseif vd==24    letter='X';elseif vd==25    letter='Y';elseif vd==26    letter='Z';    %*-*-*-*-*elseif vd==27    letter='1';elseif vd==28    letter='2';elseif vd==29    letter='3';elseif vd==30    letter='4';elseif vd==31    letter='5';elseif vd==32    letter='6';elseif vd==33    letter='7';elseif vd==34    letter='8';elseif vd==35    letter='9';else    letter='0';end

3 仿真结果

4 参考文献

[1]毛群, & 王少飞. (2010). 基于matlab的神经网络数字识别系统实现. 中国西部科技, 9(19), 3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值