当前位置: 代码迷 >> 综合 >> 【字符识别】基于模板匹配结合区域生长法实现字母+数字识别含Matlab源码
  详细解决方案

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

热度:92   发布时间:2023-12-03 17:17:30.0

1 简介

本文涉及图像识别处理领域,特别涉及基于模板匹配的OCR识别方法;将待识别图像文字切分成仅包含单个字符的子图片;将其中的数字,字母和标点符号,文字子图分别标记出来;根据待识别图像文字选择对应的字体制作特征图片;并对待识别子图片和对应类型的特征图片进行归一化处理.在此基础上,进行特征比对,将待识别的数字,字母和标点符号子图片以及文字字符子图片分别于对应类型的特征模板进行对比计算,在进对比计算时,采用相同像素位置的异或算法,统计误差频次;将误差频次最小的特征图片对应的标注作为识别结果进行输出.本发明方法实现的图像识别,计算过程简单,节省人力和物力,识别效率较高.

2 部分代码

function imgCut=areaGrow(imgBW,p)%   作用:进行区域生长%   输入参数 imgBW 为一个背景为黑色的二值图像,p为一个种子点?[lines,cols]=size(imgBW); %获取imgBW的尺寸imgCut=zeros(lines,cols); %建立一个跟imgOut同样尺寸的0矩阵,生长的区域保存在该矩阵中imgCut(p(1),p(2))=1;%设置点(p(1),p(2))为种子点count=1; %记录生长点周围8个像素中白色像素的个数,是下面循环结束的判断条件?while count>0    count=0;    for i=1:lines        for j=1:cols            if imgCut(i,j)==1%在imgCut中扫描到白                if (i-1)>0&&(i+1)<(lines+1)&&(j-1)>0&&(j+1)<(cols+1) %确认不为边界点                    for u=-1:1                        for v=-1:1                            if imgCut(i+u,j+v)==0&& imgBW(i+u,j+v)==1 %在生长点周围寻找到未加入imgCut的白点                                imgCut(i+u,j+v)=1;%将该点加入imgCut                                count = count+1;                            end                        end                    end                end            end        end    endend?end??

3 仿真结果

4 参考文献

[1]吴小艳等. "基于模板匹配的数字图像识别算法." 兵工自动化 24.6(2005):1.

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

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

  相关解决方案