2024年5月11日发(作者:)

近年来,智能交通系统(ITS)越来越受到人们的重视在车牌识别中,车牌自动识别系统

作为核心部分之一应用已经越来越普及。车牌识别系统主要分车牌定位、字符切分和字符

识别三部分,而车牌定位又是系统中最重要的步骤,定位的成功与否以及定位的准确程度

将会直接决定后期能否进行车牌识别以及识别的准确度。

文中利用MATLAB进行分析与仿真。MATLAB是一种简单,高效、功能强大的高级语

言,在科学与工程计算领域有着广泛的应用前途。在数字图像处理领域,可应用MATLAB数字

图像处理技术进行系统分析与设计。

本文要讨论的是对彩色车牌图像进行包括灰度化、二值化、图像增强、边缘检测的预

处理,之后进行区域提取来实现对车牌的初定位。借助MATLAB编程语言在仿真过程中分

析现有算法并加以改进。

1 车牌定位中的基本理论与算法

1.1 图像灰度化

彩色图像包含着大量的颜色信息,不但在存储上开销很大,而且在处理上也会降低系

统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快

处理速度。经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加

清晰、细腻、容易识别。

在车牌识别中要利用灰度分布的特征进行进一步的分割、识别,因此对车牌图像进行

灰度化成为车牌定位的必要步骤之一。

1.2图像二值化

二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行

图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结

果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。车

牌识别系统要求处理的速度高、成本低、信息量大,采用二值图像进行处理,能大大地提

高处理效率。如果图像中某中像素的灰度值小于该阈值,则将该像素的灰度值设置为0或

255,否则灰度值设置为255或0。

阈值处理的操作过程是先由用户指定或通过算法生成一个阈值,常用的二值化方法有

直方图统计法、固定门限法、动态阈值法、松弛法、抖动矩阵二值化法等。由于在光照较

弱的情况下,车牌图像的光照程度很不均匀,车牌字符与底色的对比度偏低,所以采取动

态阈值法。

1.3 数学形态学及基本运算

形态学的数学基础和所用语言是集合论,其基本运算有四种:膨胀、腐蚀、开启和闭

合。基于这些基本运算,还可以推导和组合成各种数学形态学实用算法。假设用A表示目

标物体,B表示结构元素,则二值形态学基本运算及实用算法如下:

如果图像A用结构元素B来膨胀,则记作A⊕B,其定义为:

其中,膨胀运算首先作B关于原点的映射,再将其映像平移x,当A与B的映射的交集不

为空时B的原点就是膨胀集合的像素,结果是扩张了A的边界。如果图像A用结构元素口来

腐蚀,记作A⊙B,其定义为:

上式表明用结构元素B来腐蚀的结果满足将占平移后,B仍旧全部包含在4中的工的集

合,实际上是收缩了A的边界。

膨胀和腐蚀为对称运算,不是逆运算,它们可以级联结合使用。使用同一个结构元素

对图像先进行腐蚀然后再进行膨胀的运算成为开启运算,开启运算可以用于平滑边界,去

除孤立的小点、切断细长搭接,消除突刺;使用同一个结构元素对图像先进行膨胀然后再

进行腐蚀的运算成为闭合运算,本文中主要利用是利用开启和闭合运算的性质。因为汽车

图像经过色彩过滤后,会出现许多杂散的孤立点,用开启运算可以排除这些点的干扰。另

外,车牌区域还可能出现断裂和小孔,可以通过闭合运算使车牌区域连通,并填充车牌区

域内的小孔。

本文中主要利用是利用开启和闭合运算的性质。因为汽车图像经过色彩过滤后,会出

现许多杂散的孤立点,用开启运算可以排除这些点的干扰。另外,车牌区域还可能出现断

裂和小孔,可以通过闭合运算使车牌区域连通,并填充车牌区域内的小孔。

1.4 边缘检测

图像的边缘是图像的最基本特征。所谓边缘是指其周围像素灰度有阶跃变化或屋顶变

化的那些像素的集合。边缘广泛存在于物体和背景之间、物体和物体之间、基元和基元之

间。因此,它是图像分割所依赖的重要特征。常用的边缘检测方法有Sobel 边缘算子、

Prewitt 边缘算子、Kirseh 边缘算子、高斯--拉普拉斯算子等等。

该文采用的是Canny边缘检测的方法。该方法为最优的阶梯型边缘检测算法。

1.1.1 Canny边缘检测基本原理

(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘

的位置。

(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检

测算子。

(3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。

1.1.2 Canny边缘检测算法

首先用高斯滤波器平滑图象,利用用一阶偏导的有限差分来计算梯度的幅值和方向;

再对梯度幅值进行非极大值抑制;然后用双阈值算法检测和连接边缘。最后用到高斯平滑

函数通过将八连接的弱像素集成到强像素,执行边缘链接。

本文通过仿真与对比的方式选择边缘检测的算子,分别对比检测要求的特征和检测起

映射的效果的清晰程度。比较之下发现目前Canny边缘检测器产生的结果最佳。

1.5 区域标记

对二值图像进行区域提取时,首先需要对对图像每个区域进行标记,其中应用到了连

通对象进行标注函数bwlabel主要对二维二值图像中各个分离部分进行标注,其用法如下:

[L,num] = bwlabel(BW,n)

其中,L表示返回和BW相同大小的数组,而且包含了连通对象的标注。参数n为4或8,

分别对应4邻域和8邻域,默认值为8。Num为返回连通数。

然后,需要得到图像区域属性。计算每个区域的图像特征参数:区域中心位置、最小

包含矩形、面积。这里给出在Matlab图像处理工具箱中非常重要的一个图像分析函数:

regionprops。它的用途是get the properties of region,即用来度量图像区域属性的函

数。其用法如下:

STATS = regionprops(L,properties)

其中,测量标注矩阵L中每一个标注区域的一系列属性。L中不同的正整数元素对应不

同的区域,例如:L中等于整数1的元素对应区域1;L中等于整数2的元素对应区域2;以此

类推。返回值STATS是一个长度为max(L(:))的结构数组,结构数组的相应域定义了每一个

区域相应属性下的度量。properties 可以是由逗号分割的字符串列表、饱含字符串的单元

数组、单个字符串 ‘all' 或者 ‘basic'。如果 properties 等于字符串 ‘all',则所有下

述字串列表中的度量数据都将被计算,如果 properties 没有指定或者等于 ‘basic',则

属性:‘Area', ‘Centroid', 和 ‘BoundingBox' 将被计算。

本文对已经得到了可行车牌区域的连通域,进行连通域分析均用到上述函数,从而计

算出包含所标记的区域的最小宽和高。并根据先验知识,即对标准车牌而言这个宽高比大

致为3.14 ,不妨取2~4 为字符区域的宽高比范围。比较谁的宽高比更接近实际车牌宽高

比,将更接近的提取并显示出来。

2 仿真实验

2.1 图像的预处理

2.1.1 图像灰度化

将采集到的彩色车牌图像转化为灰度图像。

%将彩色图像转换为黑白并显示

Sgray = rgb2gray(Scolor); %转换成灰度图

figure,imshow(Sgray), title('原始黑白图像');

以下展示了原始彩色图像与灰度图像对比的效果:

图 1 原始彩色图像与灰度图像对比效果

2.1.2 图像增强

对原始图像进行开操作得到图像背景图像:

s=strel('disk',13); %strel函数

Bgray=imopen(Sgray,s); %打开sgray s图像

figure,imshow(Bgray);title('背景图像'); %输出背景图像

以下展示了背景图像效果:

图2 背景图像

原始图像与背景图像作减法,对图像进行增强处理:

Egray=imsubtract(Sgray,Bgray); %两幅图相减

figure,imshow(Egray);title('增强黑白图像');%输出黑白图像

以下展示了黑白图像效果:

图3 黑白图像

在图像增强中值滤波是一种最常用的图像增强技术,是非线性滤波。不过经过实验得

出并不是每一种图像处理之初都适合此种方法增强。

Egray= medfilt2(Sgray,[3 3]); %中值滤波方法处理图像

figure,imshow(Egray);title('增强黑白图像'); %输出黑白图像

以下展示了黑白图像效果:

图4 中值滤波的黑白图像

为了保存更多的有用信息和提高图像清晰对为之后图像二值化做准备,经多次比较仿

真结果选择图3作为后期处理图片。

2.1.2取得最佳阈值,将图像二值化

二值图像是指整幅图像画面内仅黑、白二值的图像。在实际的车牌处理系统中,进行

图像二值变换的关键是要确定合适的阀值,使得字符与背景能够分割开来,二值变换的结

果图像必须要具备良好的保形性,不丢掉有用的形状信息选取最佳阈值对图像进行二值化

处理:

fmax1=double(max(max(Egray))); %Egray的最大值并输出双精度型

fmin1=double(min(min(Egray))); %Egray的最小值并输出双精度型

level=(fmax1-(fmax1-fmin1)/3)/255; %获得最佳阈值

bw22=im2bw(Egray,level); %转换图像为二进制图像

bw2=double(bw22);

figure,imshow(bw2);title('图像二值化');%得到二值图像

以下展示了二值效果:

图4 二值图像

2.2边缘检测仿真实验

对图像进行边缘提取处理:

grd=edge(bw2,'canny') %用canny算子识别强度图像中的边界

grd1=edge(bw2,'roberts') %用roberts算子识别强度图像中的边界

figure,subplot(2,2,1),imshow(grd); title('边缘提取canny');

subplot(2,2,2),imshow(grd1);title('边缘提取roberts'); %输出灰度图像

以下展示了分别使用canny算子和roberts算子的对比效果:

图5 边缘检测两种算子对比图像

如图5所示可以明显的发现使用canny算子的边缘提取图像噪声更少、边界更加清晰,

因此更加适合作为后期处理的图像来使用。

2.3 开闭操作图像滤波仿真实验

对图像做了开运算和闭运算,闭运算可以使图像的轮廓线更为光滑,它通常用来消掉

狭窄的间断和长细的鸿沟,消除小的孔洞,并弥补轮廓线中的断裂。

bg1=imclose(grd,strel('rectangle',[5,19])); %取矩形框的闭运算

figure,imshow(bg1);title('图像闭运算[5,19]'); %输出闭运算的图像

bg3=imopen(bg1,strel('rectangle',[5,19])); %取矩形框的开运算

figure,imshow(bg3);title('图像开运算[5,19]'); %输出开运算的图像

bg2=imopen(bg3,strel('rectangle',[19,1])); %取矩形框的开运算

figure,imshow(bg2);title('图像开运算[19,1]'); %输出开运算的图像

以下展示了开闭运算的效果:

图6 开闭运算滤波图像

2.4 提取车牌区域仿真实验

对图像每个区域进行标记,然后计算每个区域的图像特征参数:区域中心位置、最小

包含矩形、面积。

[L,num] = bwlabel(bg2,8); %标注二进制图像中已连接的部分

STATS = regionprops(L,'basic'); %计算图像区域的特征尺寸

Area=[]; %区域面积

BoundingBox=[ngBox]; %[x y width height]框架大小

计算出包含所标记的区域的最小宽和高、框架的宽度和高度的范围、车牌的开始行和

列来计算各个区域的宽高比更接近实际车牌宽高比,将更接近的提取并显示出来,获取定

位后的车牌二值子图。

以下展示了定位后的灰度子图和二值子图效果:

图7 灰度子图和二值子图

3 结论

针对车牌图像的特点,分别从图像预处理、车牌定位两大方面进行算法分析以及利用

MATLAB的仿真实验。整理和总结了国内外在车牌定位方面的研究成果和常用方法进行对

比,系统介绍了我国车牌的固有特征,以及车牌定位特点。在车牌定位我们采用基于灰度

跳变的定位方法,采用先对图像进行预处理,再进行二值化操作的方法。实验表明本方法

既保留了车牌区域的信息,又减少了噪声的干扰,从而简化了二值化处理过程,提高了后

续处理的速度。本设计用MATLAB编程运行结果可以得出,本设计采用的图像预处理、

CANNY边缘检测、开闭运算子[5,19]、车牌长宽比特征等对车牌的定位都是非常有效的。

参考文献

[1] 冈萨雷斯.数字图像处理(第二版). 北京:电子工业出版社,2009.

[2] 李耀辉,刘保军. 基于直方图均衡的图像增强[J ] . 华北科技学院学报,2003 ,5

(2) :65266.

[3] 徐飞,施晓红.MATLAB 应用图像处理[M] . 西安:西安电子科技大学出版社,2002.

[4] 刘佐濂 , 邓荣标 , 孔嘉圆.中国科技信息 [J].2005(23期)9~12.

[5] 宋建才.汽车牌照识别技术研究[J].工业控制计算机,2004,44~45.

[6] 韩勇强、李世祥.汽车牌照子图像的定位算法[M].微型电脑运用,1999.60~65.

[7] 王枚、王国宏.基于伴生与互补颜色特征的车牌字符分割技术[J].山东大学学报,

2007。第37卷