当前位置:自动化网>智慧工厂门户>应用案例>基于颜色处理和数学形态学的车牌定位方法

基于颜色处理和数学形态学的车牌定位方法

发布时间:2019-10-15 16:19   类型:应用案例   人浏览

1 引言

随着国内生活水平和生活质量的不断提高,私家车已经成为了现代人类出行的重要工具之一。随之带来的问题也日益凸显,车辆的日益增多,使得停车难成为了社会亟待解决的重要问题。所以,建立一个自动、智能的汽车车牌识别系统成为了未来智能交通的重要组成部分。而在汽车识别系统中,车牌的定位是最首要的也是最重要的。车牌定位的优劣将直接影响车牌识别的成功率。


2 常见的车牌定位方法

对于车牌定位方法,常见的有以下几种:边缘检测法,数学形态学法,基于颜色处理定位方法,基于小波变换法,基于神经网络的算法等。边缘检测法通常和数学形态学法混合使用,这种方法的好处是,具体实施起来快而简单,对于车牌边框不清或者有断裂的情况有着很好的处理效果。但是对于车牌区域的亮度和变换频率的要求较高。基于颜色处理的定位方法处理简单,容易实现,但是对于光照条件的影响较大。基于小波变换的定位方法,可以在一副图片中定位多个车牌的位置,但是对于拍照的距离要求较大。因此,本文提出一种基于颜色处理和数学形态学融合的定位方法,先获取图片RGB图片的颜色通道,设置合理阈值,与获取的RGB值做比较,进行二值化处理,得到车牌疑似所在区域,进行形态学处理,得到车牌区域,最后利用车牌的数学关系确定最终的车牌区域,从而有效、准确的定位车牌区域。


2 基于颜色分量定位车牌

2.1 车牌定位流程(图1

车牌定位流程图


2.2 颜色特征提取

首先,通过opencv中的Mat::at函数获得图片的RGB各个分量的值,设置预先判断条件,判断各个分量值是否满足条件,从而消除车牌的干扰区域,粗略确定车牌所在的位置。然后,对图片进行二值化处理,获得粗定位的车牌图像。


具体的算法过程如下:

1)读取原始图像(如图2所示)并获得该图像的RGB三个通道的颜色分量值。

2)设定不同底色的RGB三分量的标准值,如蓝色车牌为B=138,G=63,R=23; 黄色车牌为B=0,G=215,R=255

3)对图像进行二值化,合理设置阈值,二值化中阈值的选择依据车牌底色的不同而有所区别,如蓝色车牌的阈值为50(此值为多次测试的最优值),定义标准的RGB的值,R值为23G值为63B值为138。遍历图像的行与列,利用自写判断语句if(abs(channelB-B)<THR&&abs(channelG-G)<THR&&abs(channelR-R)<THR)(其中,channelBchannelGchannelR为所读取图像的BGR的值;THR为设定的阈值)来确定像素值是否落在阈值范围之内。比如,R分量的像素值在阈值之内,则对应的该R分量的值设定为255,反之,设定为0.同样,对于GB分量也是如此操作。

4)遍历完成,得到车牌所在位置的二值图像,如图3所示。

 

车牌图像原图

定位车牌所在位置

2.3 形态学处理

数学形态学处理有两种基本的运算,即腐蚀运算和膨胀运算,而腐蚀运算和膨胀运算的不同结合方式又被称为开运算和闭运算。

A为图像元素,B为结构元素,则运算形式有如下定义:

腐蚀运算:AΘB=∩{A-bb∈B}

膨胀运算:A⊕B=∪A+b:b∈B

开运算:A○B=AΘB⊕B
闭运算:A·B=A⊕BΘB

由于二值化的图像具有多个噪点,和车牌的疑似区域,因此需要对二值化的图像进行多次的腐蚀和膨胀处理,打断疑似区域的连通域,消除噪点,获得较为纯净的车牌图像区域,

形态学操作后图像的效果取决于以下两点:其一,是图像的腐蚀和膨胀的模板大小,其二,是腐蚀和膨胀的次数。经过多次实验,本文发现腐蚀和膨胀的模板使用3*3的效果最好;而腐蚀和膨胀的次数为3次和8次。最终处理得到的车牌区域图像如图4所示。

形态学处理后的车牌图像

3 车牌区域的确定与提取

3.1 依车牌属性确定位置

根据中国车牌的大小和面积是固定的,且矩形的长、宽比确定,因此,本文利用车牌的这一固有特性,并且定义矩形度,来准确定位车牌所在位置。以蓝牌白字车牌为例:经过多次实验,其长、宽比应在2.3~3.6范围之内,矩形度在0.62~1.35范围之内,获得的车牌图像最为准确。首先,利用opencv中的cvBoundingRect函数获得矩形的最外界边界,即车牌所在的矩形框,然后,获得车牌在水平方向的倾斜角度,以便后续矫正环节的执行。具体操作流程图如图5所示。

 

确定车牌位置流程图

3.2 车牌矫正

根据上一步获得的车牌倾斜矫正,利用opencv中提供的仿射变换函数,修正图片倾斜角度,获得水平的车牌图像。

仿射变换:仿射变换也叫仿射映射,具体是指在几何中,某一个向量进行一次线性变换加一次平移,变换到另一个空间的变换。实际上仿射变换所代表的是两幅图像的关系,通常使用2*3的矩阵表示其变换过程,如下:



本文先利用opencv中的cv::getRotationMatrix2D()函数,获得具体的仿射变换矩阵M,再利用cv::warpAffine()函数将输入的图像按照仿射变换矩阵M,进行旋转,得到矫正的车牌图像。如图6所示。

矫正后的车牌图像


定位矫正后的车牌位置,将其单独提取出来,即为定位到的车牌区域。如图7所示。

最终识别的车牌图像


4 结束语

本文通过对车牌定位算法的研究,改进传统算法单一的识别过程,利用数学形态学的方法,降低了图像的噪声和无效背景区域,基于颜色分量来定位车牌,准确定位车牌所在位置,并提取车牌位置区域,通过本文的方式定位车牌,定位准确率达到95.3%,对于倾斜的角度不大的车牌也有很好的处理,但是如果图像倾斜角度过大,会导致车牌定位准确率下降,因此下一步将在提高准确率的同时,对车牌倾斜角度过大难以准确定位的问题进一步进行研究。

本文地址:http://www.ca800.com/apply/d_1o1aa44lj3ne1_1.html

拷贝地址

版权声明:版权归中国自动化网所有,转载请注明出处!

留言反馈
  • 评价:

  • 关于:

  • 联系人:

  • 联系电话:

  • 联系邮箱:

  • 需求意向:

  • 验证码:

    看不清楚?

  • 在线咨询