车牌字符识别加标注版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
车牌字符识别加标注版
第11章数字识别系统
11.1 系统简介
该系统是为了辨认识别图像中的数字而设计的,它通过对图片的一系列处理,最后识别得出图片中显示的数字。系统既可以单独使用,也可以把它作为一个识别系统的软件核心应用到车牌识别等系统中去。
11.2 系统基本技术要求
下面是系统具体要达到的基本技术要求
(1)输入图片中可以含有多个数字;
(2)数字的识别准确率大于90,;
(3)每张图片的处理时间(识别时间)不能大于1秒;
(4)对图片噪声具有较强的适应性;
(5)系统要能长时间无故障运行;
(6)系统的操作要求简单。
11.3 系统中用到的关键技术
在本系统中用到了好多图像处理中的相关技术:比如灰度化、二值化、图像内容自动调整、去离散点、图像的缩放、细化、曲线平滑、曲线去枝桠操作等,最后还使用了神经网络对提取到的数字信息进行分析判断。
11.4 系统软硬件平台
11.4.1 系统的硬件平台
因为系统运行的过程当中,主要进行的都是图像处理,在这个过程当中要进行大量的数据处理,所以处理器和内存要求比较高,CPU 要求主频在600hz 以上(含600hz),内存在128 兆以上(含128 兆)。
11.4.2 系统的软件平台
系统可以运行于任何一台装有Windows98 、Windows2000 或者Windows XP 的机子上。程序调试时,需要使用Microsoft Visual C++ 6.0(SP6)。
11.4.3 本章源码使用说明
本系统的全部源码在本书配套光盘的【\Chap11\】目录下。可参看readme.txt 进行使用。 11.5 系统实现
系统在实现的过程当中,先分解成两个大块,就是图像预处理模块和数字识别模块。其中图像像预处理块在对图像进行了一系列变换后把最后提取到的数字字符提交给数字识别模块,然后进行识别并给处结果。在这里用到了很多先进的图像预处理技术及神经网络技术。 11.5.1 系统流程图
本系统总的流程结构如图11-1所示。
图11-1 系统总流程图
其中图像预处理的流程如图11-2 所示。
图11-2 图像预处理流程图
神经网络数字识别的具体流程如图11-3 所示。
图11-3 神经网络数字识别流程图
11.5.2 程序实现
整个系统的程序实现分为图像预处理和神经网络识别两大模块。在图像预处理的过程当中,我们采用了许多图像处理的技术,最后把每个数字的特征提取出来。这些技术包括图像数据读取、图像的灰度化、二值化、图像的调整、离散噪声点的去除、字符的切分、图像的缩放、字符的细化、字符的平滑、图像的求梯度等图像处理技术,最后是数字字符特征的提取。其结果再利用神经网络(这里我们选用BP 网络)进行字符识别。
利用神经网络进行字符识别的过程主要包括网络的训练、数据的读取、字符的判定、结果的输出。下面按照程序执行的顺序介绍整个程序并逐一分析每一步的关键代码。最后简要讲述一下程序的使用方法、注意事项以及本章小结。
显示等基本函数 1. 图像数据的读取、保存与屏幕
要进行图像分析和处理首先就要得到图像的数据,这些数据包括图像的宽、高、每个象素点的颜色值。因为每种文件都有它自己的存放格式,下面简单介绍BMP 文件的存放格式。本程序采用的输入图像即为bmp位图。
BMP(bitmap 的缩写)文件格式是Windows 本身可以直接提供读取支持的位图文件格式。一个BMP 格式的文件通常有.BMP 的扩展名,但有一些是以.rle为扩展名的,rle 的意思是行程长度编码(run length encoding)。这样的文件意味着其使用的数据压缩方法是BMP 格式文件支持的两种rle 方法中的一种。BMP 文件可用每象素1、4、8、16 或24 位来编码颜色信息,这个位数称作图像的颜色深度,它决定了图像所含的最大颜色数。一幅1-bpp(位每象素,bit per pixel)的图像只能有两种颜色。而一幅24-bpp 的图像可以有超过16 兆种不同的颜色。
一个典型BMP 文件的结构。以256 色也就是8-bpp 为例,文件被分成四个主要的部分:一个位图文件头,一个位图信息头,一个颜色表(又称为色表)和位图数据本身。
位图文件头
位图文件头包含关于这个文件的信息。如从哪里开始是位图数据的定位信息、文件大小等等。以下是位图文件头结构的定义:
typedef struct tagBITMAPFILEHEADER
{ // bmfh
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
其中的bfType值应该是“BM”(0x4d42),标志该文件是位图文件。bfSize的值是位图文
件的大小。
位图信息头
位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、
高度、目标设备的位平面数、图像的压缩格式。
以下是位图信息头结构的定义:
typedef struct tagBITMAPINFOHEADER{ // bmih
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
下面是对结构体当中各个成员的说明:
biSize
结构BITMAPINFOHEADER的字节数,即sizeof(BITMAPINFOHEADER)* biWidth
以像素为单位的图像宽度*
biHeight
以像素为单位的图像长度*
biplanes
目标设备的位平面数
biBitCount
每个像素的位数
biCompression
图像的压缩格式(这个值几乎总是为0) biSizeImage