【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 1861期】
⛄一、OCR简介
OCR技术是光学字符识别的缩写, 是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息, 再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。由于其应用前景广泛, 在应用领域有着重要的意义。
1 预处理部分
本部分可进一步细分为要素定位、二值化、切割、文字归整几个部分。由清分机或者高速扫描仪扫入的原始票据经过本部分的处理, 其识别要素如金额、日期按照单个汉字分别被存储为汉字点阵, 其中手写体大写汉字、印刷体大写汉字以及印刷体小写数字, 被存储为6464的点阵, 而手写的小写数字被存储为9680的点阵, 然后对此汉字点阵进行字符识别处理。由于某些种类的票据中, 即便为同一张票据, 其各要素的背景噪声都不相同, 所以对各不同要素区域采用了不同的二值化方法。在切割完成之后, 各要素已经成为单独的字符点阵, 文字归整则是针对单个字符点阵进行。票据上的金额、日期、帐号等都分别要经过上面的流程处理。
2 文字识别部分
按照识别系统所要识别的字符种类来分, 本系统需识别的文字有:印刷体汉字、印刷体数字、手写体汉字、手写体数字。按照识别要素, 系统包含日期识别、金额识别、帐号识别、磁码识别几个不同模块。
本系统对汉字识别采用了模板匹配方法, 对数字识别采用了人工神经网络方法。
模板匹配的基本原理是抽取未知文字的特征与事先存储好的标准的文字特征进行匹配, 在一定的距离或相似度测度下, 找出与未知文字的特征匹配得最好的标准特征, 将该标准特征所代表的文字作为未知文字的识别结果。
3 特征训练
训练是识别的基础, 标准特征的好坏直接影响到识别结果, 选取具有代表性的样本作为训练样本。训练前先将样本按一定的顺序存放起来, 训练样本也是64*64的点阵。与识别部分的特征抽取相对应, 训练部分的特征抽取也是在对文字图像进行规整和分割基础之上进行的。抽取的标准特征是每个汉字不同的样本的特征值的平均值, 还抽取了每个汉字的标准方差, 方差记录了每个字的离散度。标准特征和标准方差在识别过程中都有很重要的作用。
4 印刷体数字和英文字母识别算法开发
首先, 改进汉字识别算法, 必须充分考虑即将要开发的识别算法所要面对的识别对象与原有算法所面对的识别对象之间的区别。原算法是面对变形较大、笔划比较稠密的手写汉字, 而所开发的算法面对的是字形比较固定、笔划比较稀疏的小写数字, 相对来讲, 识别对象简单了很多。而且识别字符集也小了不少, 由原来的3755个汉字变为简单的十个数字, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 不过其中相似字仍然存在, 如5和6, 3和8; 其次是识别要求上的变化, 识别率由原来的手写汉字的识别率要求基本达到100%。
⛄二、部分源代码
% Clear all
clc, close all, clear all
% 读取图片
imagen=imread(‘test_1.jpg’);
% 显示图片
imshow(imagen);
title(‘输入带噪声的图像’)
%转换为灰度
if size(imagen,3)==3 %RGB图片
imagen=rgb2gray(imagen);
end
%转换为 BW
threshold = graythresh(imagen);
imagen =~im2bw(imagen,threshold);
% 移除所有小于 30 像素的对象
imagen = bwareaopen(imagen,30);
%图像中的存储矩阵字
word=[ ];
re=imagen;
%打开 text.txt 作为写入文件
fid = fopen(‘text.txt’, ‘wt’);
%加载模板
load templates
global templates
% 计算模板文件中的字母数
num_letras=size(templates,2);
while 1
%Fcn ‘lines’ separate lines in text
[fl re]=lines(re);
imgn=fl;
% 标记和计数连接的组件
[L Ne] = bwlabel(imgn);
for n=1:Ne[r,c] = find(L==n);%提取字母n1=imgn(min(r):max(r),min(c):max(c)); %调整字母大小(模板大小相同)img_r=imresize(n1,[42 24]);%Uncomment line below to see letters one by one%imshow(img_r);pause(0.5)%-------------------------------------------------------------------% Call fcn to convert image to textletter=read_letter(img_r,num_letras);%字母连接word=[word letter];
end
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1]张殿东,包常新,温尚卓.OCR技术在银行票据识别系统中的应用[J]. 山东科学. 2005,(02)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 1861期】相关推荐
- 【数字识别】基于模板匹配实现OCR印刷字母+数字识别含Matlab源码
1 简介 OCR技术是光学字符识别的缩写, 是通过扫描等光学输入方式将各种票据.报刊.书籍.文稿及其它印刷品的文字转化为图像信息, 再利用文字识别技术将图像信息转化为可以使用的计算机输入技术.由于其应 ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...
- 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...
- 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】
一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】
一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...
- 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】
一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
最新文章
- Redis 高级特性(5)— 集群模式(主从模式、哨兵模式、cluster 集群模式)
- ANSYS——常见梁的后处理方法(弯曲应力、弯矩、轴力等的显示)
- 可以直接进行运算么_WORD办公技巧:如何直接在WORD中进行加法、乘法运算?
- beeline连接hiveserver2报错:User: root is not allowed to impersonate root
- 1682亿背后丨一分钟看懂天猫双11
- 【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出
- Appium基础:Desired Capabilities详讲
- 支付宝上线新功能:一定要给家人开通!
- 未来 12 个月,哪种编程语言将会流行?
- Nginx服务器的压缩功能和缓存功能
- 【Spark Summit EU 2016】使用参数服务器在Spark上扩展因式分解机
- Xmind 8 下载以及破解
- 微信小程序内无法播放第三方服务器上的视频资源
- 游戏录制软件哪个好?游戏录制软件推荐
- 【专题】我国银行系科技子公司比较研究
- Windows 11的这19个新功能,你都知道吗?
- EasyStack林冠宇当选OpenStack基金会技术委员会成员
- 2015年2月2日 奶农倒牛奶的背后
- 汉诺塔完整代码及分析
- 关于Android ViewPager禁止滑动
热门文章
- 在.net里编写Windows Service
- 小菜鸟的python进阶之路 ------- for循环打印四种形式的星星
- python软件工程师自我介绍_软件工程师求职自我介绍范文
- SCRUM:敏捷团队的故事(SCRUM: The Story of an Agile Team)——(1)
- 解剖直播功能解剖直播观众
- D-OJ刷题日记:折半查找 题目编号:518
- javascript汉字转换成拼音(部分)
- 当超跑「遇上」激光雷达,路特斯ELETRE背后还有哪些黑科技
- HTML入门---慕课网
- 原神私服 grasscutter搭建及食用教程