目前检测车牌有IC卡识别和条形码识别等方法,但这两种方法都有:配套设备价格昂贵、不能异地使用、全国统一标准困难等问题。而基于图像处理的车牌识别系统具备:低成本、普适性等优点。但是由于照明、天气、污染、遮挡等情况造成的图像质量较差,会影响识别率。另一方面,算法对于基于图像处理的方法的影响是很大的,不断地提高算法质量,可以有效地减小特殊情况对识别率的影响。
目前,国外的研究起步早,车牌识别系统已经比较成熟。国内虽然起步迟,但也已经取得一定的成果。由于国外车牌的规格比较统一、规范,所以一套系统有较高的普适性。而国内车牌规范不够,形式比较多,不同类型的汽车有不同的大小、颜色。当前投入使用的较为成熟的系统,主要为针对单行蓝底车牌的。[2]可以识别双行黄底车牌的系统还比较少,而配有这种的车牌的公交车占城市车辆的很大一部分。目前,车牌定位的方法主要有以下几种:
(1)特征法:利用车牌特征提取车牌,如:边缘特性、比例特性、颜色特性等。
(2)人工神经网络方法:进行神经网络训练,得到一个对车牌敏感的人工神经网络,然后用其定位车牌[3]。
(3)数学形态学的方法:利用数学形态学中的开运算与闭运算来对图像进行处理,得到多个可能是车牌的区域,然后在多个可能区域中找到车牌的位置。
(4)基于颜色和纹理的定位方法:采用HSV模型,选取符合车牌颜色特征的区域,再进行分析,从而确定车牌区域。
1.2 本文主要内容及要解决的问题
车牌定位是车牌识别系统的重要部分,它对于车牌的正确识别很重要。本文主要研究双行车牌的定位,首先论述了车牌定位的原理,然后介绍了所用的算法及原理,最后研究在VC++中运用OpenCV与MFC相结合的方法实现算法。
本文主要完成的工作包括:
(1)设计针对双行车牌定位的算法。
(2)在VC++6.0编程环境下,运用OpenCV与MFC的结合,编译出双行车牌定位程序。
(3)采集图片库,测试所编程序的准确率。
论文第2章论述了双行车牌定位的算法,以及在VC++中运用OpenCV和MFC如何实现具体算法,第3章论述实验结果和分析,最后是结论和展望。
2 双行车牌定位算法及程序实现
本文所使用的算法流程如图2-1所示,对已采集到的图像进行预处理、判断区域、画出区域等操作,即可得出车牌区域。其中预处理的具体流程如图2-2所示。后续章节将对算法进行具体介绍。
图2-1 算法流程
2.1 图像预处理
由于器材及自然环境的影响,我们采集到的图像样本会有一些质量问题,如过度曝光、曝光不足、污点、歪斜等,这些问题会对车牌定位造成困难。为了能提高图像质量,方便后续处理,我们在定位前要对图像进行预处理。论文网
图像预处理是一种对图像前期的处理,也可以看作是对初始采集图像的增强。将图像转换成为一种更适合计算机进行分析处理的形式。主要是指按需要对图像进行适当的变换以突出某些有用的信息,去除或削弱无用的信息,如改变图像的对比度、去除噪声或强调边缘等处理[4]。
2.1.1 灰度化
图像灰度化是将彩色图像中的彩色信息,只包含亮度信息。计算机中表示灰度图是吧亮度值进行量化等分成0到255个级别,0是最暗(全黑),255最亮(全白),而在RGB模型中,如果R=G=B,则颜色(R,G,B)就表示灰度色[5]。
一般情况下我们得到的车辆照片都是彩色图像。但是彩色图像中的每个像素都具有三个不同的颜色分量R、G、B,含有很大颜色信息,占用的存贮空间很大,而且处理图像时也会浪费较多的系统资源,减慢系统运行速度。而灰度图像只处理亮度信息,计算量就是彩色图像的三分之一。因此我们需要对图像进行灰度化。