当前位置 : 主页 > 编程语言 > python >

【字符识别】基于模板匹配实现OCR键盘数字字母识别含Matlab源码

来源:互联网 收集:自由互联 发布时间:2022-06-18
1 简介 光学字符识别(Optical Character Recognition,OCR)的概念在1929年就已经提出,经过几十年的发展,该技术相对比较成熟,目前的应用主要体现在办公自动化,车牌识别,票据识别等方面,而食品

1 简介

光学字符识别(Optical Character Recognition,OCR)的概念在1929年就已经提出,经过几十年的发展,该技术相对比较成熟,目前的应用主要体现在办公自动化,车牌识别,票据识别等方面,而食品,制造,日用品等行业还有这巨大的潜在市场.随着自动化生产水平的普及以及物联网等高新技术的应用,字符识别技术在工业方面的应用还有这巨大的潜在市场,因此本文的研究重点主要是字符识别技术在工业方面的应用.

2 部分代码

%建立模板
%Letter
A=imread('letters_numbers\A.bmp');B=imread('letters_numbers\B.bmp');%读取letters_numbers文件夹下的A.bmp图片
C=imread('letters_numbers\C.bmp');D=imread('letters_numbers\D.bmp');%读取出来的是42*24是图片像素点
E=imread('letters_numbers\E.bmp');F=imread('letters_numbers\F.bmp');
G=imread('letters_numbers\G.bmp');H=imread('letters_numbers\H.bmp');
I=imread('letters_numbers\I.bmp');J=imread('letters_numbers\J.bmp');
K=imread('letters_numbers\K.bmp');L=imread('letters_numbers\L.bmp');
M=imread('letters_numbers\M.bmp');N=imread('letters_numbers\N.bmp');
O=imread('letters_numbers\O.bmp');P=imread('letters_numbers\P.bmp');
Q=imread('letters_numbers\Q.bmp');R=imread('letters_numbers\R.bmp');
S=imread('letters_numbers\S.bmp');T=imread('letters_numbers\T.bmp');
U=imread('letters_numbers\U.bmp');V=imread('letters_numbers\V.bmp');
W=imread('letters_numbers\W.bmp');X=imread('letters_numbers\X.bmp');
Y=imread('letters_numbers\Y.bmp');Z=imread('letters_numbers\Z.bmp');
%Number
one=imread('letters_numbers\1.bmp'); two=imread('letters_numbers\2.bmp');
three=imread('letters_numbers\3.bmp');four=imread('letters_numbers\4.bmp');
five=imread('letters_numbers\5.bmp'); six=imread('letters_numbers\6.bmp');
seven=imread('letters_numbers\7.bmp');eight=imread('letters_numbers\8.bmp');
nine=imread('letters_numbers\9.bmp'); zero=imread('letters_numbers\0.bmp');
%*-*-*-*-*-*-*-*-*-*-*-
letter=[A B C D E F G H I J K L M...
N O P Q R S T U V W X Y Z];%一般在编辑器里一行代码太长写不下了,用...表示续行,下一行的代码和上一行是连着的。但在字符串里不能这样。
number=[one two three four five...
six seven eight nine zero];
character=[letter number];
templates=mat2cell(character,42,[24 24 24 24 24 24 24 ...%数字后面换行空格加三点,字母后面换行不用空格加三点
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 ...
24 24 24 24 24 24 24 24]);%mat2cell矩阵啊分块函数,在mat2cell函数中,有三个参数,第一个参数是想要分解的矩阵,第二个和第三个参数一般都是集合的形式,表示分解的尺度。
save ('templates','templates')%直接在文件夹中生成templates目录。前面那个templates是是文件名。
clear all
%mat是matlab的数据文件,可以直接双击导入。或者通过命令窗输入命令以及编写m文件导入。如果是当前目录下的文件file1.mat,直接输入load
%file1;如果不是当前目录下的,输入load(['目录\file1.mat'])。如果file1里含有a,b,c这三个变量,导入后数据空间里,就直接存在a,b,c这三个量。如果数据空间里有重名的,会把已有数据冲掉。

3 仿真结果

【字符识别】基于模板匹配实现OCR键盘数字字母识别含Matlab源码_字符识别

【字符识别】基于模板匹配实现OCR键盘数字字母识别含Matlab源码_数据空间_02

4 参考文献

[1]李杜. 字符识别技术研究及其在机器视觉测控中的应用[D]. 江南大学.

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

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

【字符识别】基于模板匹配实现OCR键盘数字字母识别含Matlab源码_数据空间_03


【文章原创作者:阿里云代理 http://www.558idc.com/aliyun.html处的文章,转载请说明出处】
网友评论