zoukankan      html  css  js  c++  java
  • 车牌识别LPR(四)-- 车牌定位

    第四篇:车牌定位  

      车牌定位就是采用一系列图像处理或者数学的方法从一幅图像中将车牌准确地定位出来。车牌定位提取出的车牌是整个车牌识别系统的数据来源,它的效果的好坏直接影响到整个系统的表现,只有准确地定位出车牌,才会有后续的车牌分割与字符识别。

      目前车牌定位有两大类、基于灰度、基于彩色。

    基于灰度:

           我们采用的是基于灰度的形态学的车牌定位:首先根据车牌区域中丰富的纹理特征,提取车牌图像中垂直方向的边缘并二值化。然后对得到的二值图像进行数学形态学(膨胀、腐烛、幵闭运算等)的运算,使得车牌区域形成一个闭合的连通区域。最后通过车牌的几何特征(高、宽、宽高比等)对得到的候选区域进行筛选,最终得到车牌图像。

      基于灰度的还有边缘检测的车牌定位:由于车牌字符的灰度值与车牌底色的灰度值相差较大,字符与底色的交界处就有灰度突变,灰度突变处就会产生边缘,这是车牌定位技术中非常重要的特征。也可以通过检测车牌的外边框来定位车牌,由于外边框的上下左右四边都为直线,而且有明显的边缘特征,所以首先利用边缘检测算法提取车牌边框位置,然后,用Hough变换算法检测直线,确认外边框的上下左右四条边位置就确定了车牌在图像中的位置。

      基于投影法的车牌定位方法:首先对车牌图像进行二值化,由于车牌区域存在明显的剧烈的字符与背景的灰度跳变,将跳变次数投影到垂直轴上,那么车牌区域对应的垂直轴上会有一个明显的峰值,这样可以得到车牌的上下边界。然后对上下边界内的区域进行水平投影,字符区域会出现明显的峰值,这样可以得到车牌的左右边界。这种方法比较理想化。

      基于纹理分析的车牌定位方法:所谓的纹理特征是指对图像进行扫描得到的灰度变化曲线,由于扫描经过车牌得到的变化曲线明显不同于经过非车牌得到的曲线,根据这个特点再结合形态学操作和其它先验知识就能从图像中提取出车牌。

    基于彩色的:

      从颜色空间的角度来看,HSV (Hue色调,Saturation饱和度,Value亮度)颜色空间具有线性伸缩性,比RGB颜色空间更容易区分色彩。HSV车牌定位典型的思路是首先将车牌图像从RGB空间转换到HSV空间,然后寻找图像中含有蓝白相间、黄黑相间、白红相间和白黑相间的地方,对得到的候选区域进一步用字符颜色提取车牌字符,最后用车牌的字符特征确定车牌位置。基于彩色图像的车牌定位方法对字符颜色和背景颜色固定的车牌可以取得较好的效果。

      基于彩色图像的边缘检测和区域生长相结合的车牌定位:实现该方法的基本思想是:首先可以利用边緣检测算子对原始彩色(RGB空问)图像进行边缘检测,使得车牌区域的纵向纹理特征得到增强;接着利用数学形态学中的膨胀算法实现区域的连通,然后采用区域生长的方法对候选区域进行标记,最后利用车牌具有的特征和字符排列的频率特点,去除伪车牌区域,得到车牌区域。

      基于纹理和颜色综合特征的车牌定位:首先将原始彩色图像M0的颜色空间转化到HSV颜色空间Ml;接着对Ml进行色彩分割,把所需要的颜色的区域设置为前景白色,其他区域设为背景黑色,此时得到图像M2,其次对M2采用区域生长的方法进行处理,并生成连通区域,得到车牌区域的集合A,然后若集合A中不包含车牌,则继续对Ml进行色彩分割,提取下一块前景颜色区域,并对该区域进行车牌特征分析,重复上述过程。

      车牌轮廓特征判断条件:

    (1)外接轮廓的高度大于5个像素或小于25个像素

    (2)外接轮廓的宽度大于20个像素或小于80个像素

    (3)外接轮廓的宽高比大于2或小于10

     

       由于我国车牌种类繁多,颜色组合不一致,会遇到以下问题:一方面各地发放的车牌的底色色调会有所不同,另一方面受自然光照变化影响,采集到车牌图像的色度的变化范围也很大。因此,定位我国车牌的方法不适宜直接利用颜色信息进行定位。

      其实,还有一些文献里提出支持向量机和adaboost等分级分类的定位方法,虽然使用训练的方法可以很准确的得到车牌图像,但是实际中由于环境的复杂性,单纯的一种方法并不不能得到很好的结果。对图像进行预处理,结合三次定位,像素统计粗定位,颜色阈值定位,文理特征定位,一次次的精确定位结果,调整参数,知道得到正确的车牌图像。

      这里有涉及到边缘检测的应用,其中边缘检测就有几种常用的算子方法。还涉及颜色空间的转换,这里不做具体展开。

  • 相关阅读:
    Linux Core Dump
    ODP.NET Managed正式推出
    获取EditText的光标位置
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1603 斯诺登的密码
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1036 选数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1012 拼数
    (Java实现) 洛谷 P1028 数的计算
  • 原文地址:https://www.cnblogs.com/silence-hust/p/4191771.html
Copyright © 2011-2022 走看看