张华萍 黄辰
摘 要:文字识别技术是利用计算机对纸上文字进行自动识别并处理成可识别信息的技术。该技术由于使用范围广而越来越重要。在近代科学研究、军事技术、工农业生产、医学、气象及天文学等诸多领域中,文字识别技术解决了许多实际问题。文中通过Matlab软件阐述文字识别技术理论及对文字的处理过程,并利用该软件对文字图像进行滤波、增强、检测和定位,把文字图像中的有用信息和背景噪声区分开。
关键字:文字识别;Matlab 字符集;滤波;背景噪声区
中图分类号:TP39 文献标识码:A 文章编号:2095-1302(2018)08-00-03
0 引 言
人们在生活工作中需要处理大量的文字信息,劳动强度较大,而通过探索文字识别方法可以提高工作效率,降低劳动强度,因此文字识别技术得到了快速发展。
文字信息采集、信息分析与处理、信息分类判别是文字识别技术的主要步骤。信息采集是将纸中的文字信息转换成电流信号,并自动输入到计算机。信息分析与处理是对电信号进行消噪及偏转、粗细、大小等润色处理。信息分类判别是对处理后的文字信息进行分类判别,输出识别结果。
本文通过Matlab软件编写Matlab语言,对文字进行识别及处理,阐述文字识别的原理,并应用于文献资料的检索、信件和包裹的分拣、商品编码的识别、商品仓库的管理等方面。
1 文字识别系统的原理及组成
文字图像的辨识原理如图1所示。其各部分功能如下:
(1)光电转换检测部分最重要的功能是对纸张上的文本内容执行光电转换过程,通过模数转换获得具有一定灰度的数字信号,并提供给后续部分进行辨识,扫描仪、CCD摄像头等是常用的检测设备;
(2)文本分割则是通过对图像中的文本区域进行定位,分离真实文本,从而进行识别;
(3)识别处理部分是对分离的文本图像信息进行甄别,去除信号中的黑点、空白等无效部分,再对文本图像信息进行增强,并根据一定的标准忽略掉一些不必要的信号,获得相同大小、位置及笔画的信号,从而降低判断的复杂性;
(4)特征提取部分是将识别出的信号的特有部分进行提取,为后续识别提供模版;
(5)学习部分则是通过提取出的信号特征优化模板库的内容,并存储到指定位置。
2 文字识别及Matlab实现
文字识别及Matlab实现过程如下:
(1)为得到原始图像,在Matlab中调用i1=imread(‘字符.jpg),如图2所示。
(2)为得到灰度图像,在Matlab中调用i2=rgb2gray(i1),如图3所示。
调用a=size(i1),b=size(i2)可得:a=3,b=2 ,即三维图像变成了二维灰度图像。
(3)调用i3=(i2>=thresh)得到二值图像。其中thresh为门
限,在[0,255]之间取值:
i2_max=double(max(max(i2)));//获取亮度最大值
i2_min=double(min(min(i2)));//获取亮度最小值
thresh=round(i2_max-((i2_max-i2_min)/3));
得到的二值图像如图4所示。
(4)在放大的二值图像中存在离散的黑点,对图像分别进行横向、纵向腐蚀膨胀处理,处理后的图像如图5所示。
由图5可知,腐蚀膨胀处理后的图像在质量上有了很大程度的提高,且分别进行横向、纵向的腐蚀膨胀运算效果明显优于横向、纵向同时进行腐蚀膨胀运算得到的图像。横向、纵向同时进行腐蚀膨胀运算得到的图像如图6所示。
(5)对运算后的图像进行Y方向上的区域选定,并从中间向两边扫描,形成的图像如图7所示。
将原图像与纵向扫描后的图像进行对比,结果如图8所示。
(6)对图像进行X方向的区域选定,并从中间向两边扫描形成的图像如图9所示。
将原图像与经横向扫描后的图像进行对比,结果如图10所示。
(7)为使背景为黑色(0),字符为白色(1),调用i8=(iX·iY~=1),以便后期处理。
处理后的图像如图11所示。
(8)调用i9=getchar(i8),所得图像如图12所示。
(9)调用自定义字符获取函数来剪切图像,并将剪切字符加载到一维数组中,剪切过程如图13所示。
(10)调用以下代码将数组中的字符显示出来,显示结果如图14所示。由图14可以看到,字符宽度不一致。
for j=1∶cnum //cnum为统计的字符个数
subplot(5,8,j),imshow(word{j}),title(int2str(j));
//显示字符
end
(11)调用下面的代码,使字符规格化,易于识别,得到规格化后的字符如图15所示。
for j=1∶cnum
word{j}=imresize(word{j},[40 40]);
//字符规格化为40×40大小
end
(12)为创建字符集调用以下代码:
code=char(‘由于作者水平有限,书中难免存在缺点和疏漏之处,恳请读者批评指正。),在文件夹中保存创建的字符集,以供后续匹配时调用,如图16所示。
(13)字符匹配采用模板匹配算法,将与现有字符相减误差最小的模版字符作为匹配字符。
假设:字符,模板字符,模板字符
字符A与模版字符T1相减的误差为8,与T2相减的误差为2,因此可以认定T2即为字符A。
通过模板匹配获得字符信息,字符效果如图17所示。
(14)調用以下代码,将字符放入newtxt.txt文本,newtxt.txt文本内容如图18所示。
new=['newtxt','.txt'];
c=fopen(new,'a+');
fprintf(c,'%s\n',Code(1:cnum));
fclose(c);
3 结 语
文本是人类获取信息和交流信息的主要途径,人们生活和工作的方方面面都涉及文字识别技术。随着科学技术的发展,文字识别技术将被广泛应用于航空航天、工业生产、资源环境、医疗诊断、天气和交通监控、教育等领域。更加深入、完善的发展,更加优越的处理算法,更加快捷的处理速度,智能化识别以及代加工和文字理解必将成为未来的发展趋势。
参考文献
[1]陈梓洋,王宇飞,钱侃,等. 自然场景下基于区域检测的文字识别算法[J].计算机技术与发展,2015,25(7):230-233.
[2]张源,李灿平.基于弹性网格特征和神经网络的手写文字识别[J].信息技术,2011(12):38-41.
[3]商明慧.汉王OCR文字识别软件使用技巧[J].广东印刷,2018(1):38-39.
[4]弓耀辉.图像文字识别中的预处理技术研究综述[J].信息通信,2017(9):291-292.
[5]陈义文,范平.批量图片的文字识别系统设计与实现[J].湖北科技学院学报,2016,36(A1):141-143.
[6]江波,史凤波.文字识别领域中模式识别技术的应用[J].科技资
讯,2015,13(27):6-7.
[7]王立群,郭树强,郭晓丽.基于仿射变换的文字识别方法[J].黑龙江科技信息,2014(27):118.
[8]冯琬婷.基于文字识别视角分析人工智能机器学习中的文字识别方法[J].电子技术与软件工程,2017(13):253.