第一章 绪论
1.1 研究的目的与意义
字符识别应用的一个重要领域就是车牌中的字符识别[1-5]。汽车牌照只涉及到地域简写以及一些特殊部门(如部队、武警还有公安)的简称,加上车牌号码总量也很小。由于受到分辨率的限制,所以对于汽车牌照中的汉字来说,很容易就造成比划粘连的情况,会给字符的识别带来一定难度。受环境影响大,因为别的汉字识别系统一般都在固定的环境下进行,甚至主要是在室内进行,这种情况光照情况稳定。而汽车牌照的识别需要在室外全天候的情况下进行,有着各种不可预测的干扰,会导致实际提取到的字符的位置、大小、粗细都有一定偏差。由于汽车牌照字符识别的特殊性,对于实时性的要求要远远高于其他字符识别系统,它要求对驶过的车辆能及时进行图像的采集、处理、识别等一系列操作。因为汽车牌照算上汉字部分共有 7 个字符[6-9],所以经过字符分割之后,汽车牌照首先按照个数被分割成 7 个独立的字符,然后逐个进行识别。在识别的过程中,特征的提取和选择对于识别的准确性至关重要,需满足以下要求。
1.2 国内外研究现状
我国近年来也在相关领域取得了很多进展[16-21],例如:找柏树、周俊等在 2004年提高了 LED 的显示亮度,使其即使在室外情况下也有很好的显示效果;邹金胜和王仁波、阎政在 2006 年开发出单片机汉字显示系统[22-26]。汉字由于其笔画的多样性,曾一直困扰着汉字显示系统在计算机上的应用,对于近千的常用汉字,人们很难通过人为确定 LED 亮点的位置实现准确的汉字显示。这个难题现在已经得到解决[27-31]。目前国内外模式识别研究领域的一个热点是赖树雨等人研究的基于图像和字符识别技术,他们首先将图像进行灰度化处理,再通过脉冲耦合神经网络 PCNN 的汉字灰度图像特征提取以及基于十三点网格特征的数字、字母特征提取方法确定适合的参数[31-34]。
…………..
第二章 字符的分割与识别
2.1 背景介绍
如图 2.1 所示,计算机图像处理系统与字符识别技术在智能化交通管理系统中的应用,它主要由以下几步骤:图像输入装置、预处理系统、区域搜索与分割系统、字符分割系统、归一化系统、字符特征提取系统以及字符识别系统。
2.2 车牌字符识别的预处理
为了使图像输入装置采集的图像更容易让计算机进行识别,原始图像应具有适当的亮度。不过因为摄像头经常被放置在室外,拍摄时的角度、与车辆的距离、以及汽车的速度等因素都可能导致汽车牌照出现模糊、歪斜等现象,所以要对原始图像进行预处理来消除这些障碍。
MATLAB 语言是 Matrix Laboratory(矩阵试验室)的缩写。最开始,它只是一组专门求解线形代数问题的程序,后来由于 Mathworks 公司的介入,MATLAB 语言成为一个包括图形图像、可编程的宏汇编、IEEE 算法、一个快速解释程序和许多分析命令的继承系统,并成为许多领域的基本工具,如:数字信号处理、自动控制理论、动态系统仿真等。现在 MATLAB 软件还加入了数学符号计算功能。
BMP(BitMap Picture)格式的图像是以像素的形式来记录图像,每个像素点由红、绿、蓝三原色组成,每个色彩通道都由一个八位的字节来表示。因为考虑到文件的存储量以及处理图像时所占用的大量的机器资源,所以绝大多数的牌照字符识别系统都用不含有彩色信息的灰度图像来呈现。灰度图像是具有 256 个灰度级的黑白图像,更有利于后续的图像二值化,也大大减少了计算机需要处理的运算量,如图 2.4 所示。
…………
第三章 汉字的单片机显示...................19
3.1 汉字点阵显示原理........................................ 19
第四章 字符的提取与显示.......................27
4.1 各部分显示电路功能 ....................................... 27
第五章 结论......................................34
第四章 字符的提取与显示
4.1 各部分显示电路功能
因为 89C51 单片机各功能部件的运行都是通过时钟信号来进行控制,所以时钟频率也是影响单片机处理速度的关键因素。因为单片机系统的稳定性直接受时钟电路影响,所以本次设计采用的是内部时钟方式。89C51 内有一个以芯片引脚 XTAL1 为输入端, XTAL2 为输出端的高增益反相放大器。将这个高增益反相放大器的两个引脚于微调电容和石英晶体振荡器跨接起来就构成了一个稳定的自激振荡器。因为电路中的电容直接关系到振荡器的稳定性、起振的速率和振荡器频率的高低,所以本次电路中的电容选择 22PF。同时,为了尽量减少寄生电容,电容的安装应与单片机芯片尽可能靠近由图 4.1 可以看出,本次设计为单片机提供了一个稳定的频率,使得字母的显示不至于闪屏。
4.2 单片机显示电路软件部分
首先将制作的 26 个字母图像放入 Matlab 安装地址的 work 文件夹中,按照字母名称排好顺序,然后打开 Matlab 软件,将上面的程序命令写入窗口中,然后按下回车键,这样就会得到字母 A 的特征二值矩阵。图 4.4 是字母 A 的特征矩阵图。
这里定义了一个矩阵 t,用命令 t=imread(A.bmp)将 Matlab 软件 work 文件夹中的 A.bmp 图片读入到软件里,imshow 命令是将读取的图片显示到 Matlab 窗口中,m=size(t)命令是查看矩阵他的大小,据图 4.4 可看出 Matlab 读取的 A 图片的矩阵大小是 16*13,接下来回车就得到图片 A 的具体二值矩阵图,在这里 Matlab 将白色部分以 1 表示,黑色的字母部分以 0 表示。在单片机程序中要注意将这个矩阵取反后在转换为 16 进制字码输入到单片机程序中的字母矩阵中。
下面的图 4.5、图 4.6 就是截取的同样情况下,利用 Matlab 提取图像程序得到的字母 B 和 M 的二值矩阵图。
..............
第五章 结论
本文提出了一种字符识别的综合方法。首先,通过对图片进行预处理,主要包括字符的滤波和二值化。在对图像做预处理的基础上进行图像分割,使用灰度图像直方图分析图像的灰度变化,根据对灰度图像的分析,得出应该把阈值选在两个峰值之间的结论,因为阈值太大或太小都会影响图像的特征,在实验的验证下,阈值应该选在 180 较为合适。其次,为便于对多个字符的识别,使用图像分割技术把整幅图像分割成单个的字符图像。图像分割是根据水平投影法,通过检测图像在水平轴上的像素投影来确定单个字符的边界。字符与字符之间由于没有像素为 0 的点,所以在投影值为 0,只需要检测出字符左右的 0 值作为边界进行分割即可。第三,汉字点阵的提取可由 Matlab 软件实现,不用再依赖汉字点阵字库,为汉字显示的独创性开辟了纪元。本文根据 LED 汉字显示原理,制作了由 AT89C51 主控的LED 汉字显示模块,给出了硬件电路图和控制软件,以及 LED 显示屏显示汉字的过程。该模块易于扩展字库容量和 LED 显示屏数量,可以同时显示多个汉字和字符。另外成本较低,电路与控制方案简洁明了,容易实现,具有应用推广价值。该程序完全用 C 语言编写而成,通用性强,移植方便,在实际中取得了较好效果,汉字显示清晰稳定。第四,本次设计选用了 AT89C51 单片机作为系统的逻辑控制系统,它的各项功能都可以满足本次设计要求。时钟电路设计采用的是内部时钟振荡电路,在单片机引脚XTAL1和XTAL2之间跨接石英晶体振荡器和微调电容即可构成一个稳定的自激振荡器,为单片机提供一个稳定的工作频率。
..............
参考文献(略)