第六篇:字符分割

  在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割。一般最容易想到的方法就是根据车牌投影、像素统计特征对车牌图像进行字符分割的方法。是一种最常用的、最基本的、最简单的车牌字符分割方法。它的精髓是对车牌图像进行逐列扫描,统计车牌字符的每列像素点个数,并得到投影图,根据车牌字符像素统计特点(投影图中的波峰或者波谷),把车牌分割成单个独立的字符。

  图像的边缘信息一般都是高频信息,所以在水平、垂直方向上对车牌图像进行小波变换,对其高频信息进行重构,获得相应的高频信息方面的子图,在车牌垂直投影图像中找到每个车牌字符的边界所在位置,并记下边界位置的横坐标;同理在水平投影图像中找到相应的边界的纵坐标,再根据相应的字符坐标值将字符分割出来。

  一般在进行分割之前需要对车牌进行预处理:倾斜校正和去噪处理

  在进行分割之后需要统一字符大小,对其进行归一化和去边框处理。

(1)统一车牌底色:

  对不同类型的车牌灰度图像进行二位化以后,有的呈现的是黑底白字,而有的则是白底黑字,为了便于对字符进行分割,需首先将不同种类车牌的二值化结果进行景颜色和目标颜色的统一,然后再用相关字符分割的方法对车牌屮的字符进行切分和提収。统一车牌底色可以有两种方法:

  基于颜色分量的判断,但由于我国车牌种类太多,这个方法并不能完全区分,但是区分两种车牌类型还是可以的,例如蓝底白字车牌中的R<B,而黄底黑字中的B>R,在考虑到光照影响和使用已久褪色车牌上这种方法就不好了。

  基于二值图像中像素比例特征的车牌底色判断:一般情况下,二值化后的车牌图像中字符笔画的像素个数在整个车牌的像素数目中所占的比例要小于50%。因此,可以通过分别计算二值化后的车牌中两种像素值的像素个数的大小来判断是否需要反色,若目标像素的比例大于50%,则将图像进行反色,否则不进行处理。这种方法的优点是算法简单,适用各种底色类型的车牌。缺点是若车牌中含有的字符的笔画较粗或者是车牌上存在较多污点或者是有装饰物等因素影响时,往往不能准确的判断底色。

(2)图像去噪

  采集的图像总是会受到各种噪声的影响。为了保证后续处理的精确度,需要抑制图像中的噪声。对二值化后的车牌图像进行中值滤波处理,它是一种常见的非线性滤波方法,是一种局部平均的图像平滑技术,也是一种低通滤波。经典的中值滤波算法步骤如下:

  1、令一个 3*3模板沿行或者列方向的移动;

  2、每次移动后,对模板覆盖区域的像素灰度值进行排序;

  3、用排序得到的中值代替模板内中心位置的原始图像像素灰度值。

  通过以上步骤可以看出,中值滤波的主要功能就是让与周围像素灰度值的绝对差较大的像素改为与周围像素灰度值接近的灰度值,去除那些相对于其领域像素更亮或更暗的灰度。一般来说,小于中值滤波器模板面积一半的亮或暗区域会被滤掉,而较大的物体则会几乎原封不动的保留下来。

(3)倾斜校正

  通常车牌区域的上下沿是两条明显的平行直线,一般都采用Hough 变换,检测出这两条直线的倾斜角,然后对车牌进行校正。然而传统的 Hough变换是对整幅图像的每个像素进行计算,以求出图像中可能存在的直线。

  要想使用 Hough 变换计算车牌的倾斜角度,必须先确定进行 Hough 变换所需要的数据,即车牌的边缘点。如果图像包含完整的车牌,一般采用检测车牌的上下边框边缘点来作为 Hough 变换的数据,但由于实际得到的车牌不一定含有边框或者只有极少量的边框,所以最常用的是直接检测车牌每个字符上下边缘点作为Hough 变换的数据来源,但是由于实际中得到的车牌含有噪声、污损等原因,用这种方法会产生大量的干扰点,影响校正效果。

  方法:对车牌图像在垂直方向进行投影并用高斯滤波器进行平滑,定位投影曲线中的所有波谷点,然后在相应的二值图中,查找所有波谷点之间最高的连通区域,得到的各个区域大部分就是车牌中的各个字符,最终选取各个连通域中即字符的最高和最低点作为 Hough 变换的检测点。对图像进行旋转时采用双线性插值。

(4)去边框

  定位出来的车牌图像往往会包含车牌的部分或者全部边框,甚至还包含部分车身,为车牌字符分割带来了不利影响。因此就需要先对车牌图像进行去边框处理,其原理如下:采用水平投影得到上下边界。

(5)字符分割

  采用一种基于相邻字符最大间隔宽度的方法来对车牌中的字符进行分割。由单行车牌的特点可以知道,在第二个字符和第三个字符之间存在一个圆形的间隔符,且该间隔符在每个单行车牌中有且仅有一个,还有一个重要的特点就是此间隔符所在的间隙约是其他相邻字符之间间隙的2.6倍,是整个车牌图像中相邻字符的最大间隙,根据这一先验知识首先确定了第二个字符右边缘和第三个字符左边缘的位置,然后由二值图像的垂直投影及单个字符的高宽比确定后5个和前2个字符的精确位置,因此,该方法的最为关键的部分是寻找图像中间隔符所在的空隙。

  采用连通域和投影相结合的方法来对车牌图像进行字符分割,采用四连通标记法对车牌字符边界进行标记,形成连通域;然后判断各个区域的高宽是否基本等于车牌字符区域的高宽(去边框时已经求出),若相差较大时,就进行垂直投影,把宽小于车牌字符宽的相邻区域进行合并,把宽大于车牌字符宽的相邻区域进行进一步分割;最后对各个区域加矩形边框,提取单个车牌字符。

  在理想的情况下,波谷的值应该为零,并且两个字符之间应该存在波谷,但是由于受到噪声的干扰,使得波谷的值为非零。常见的字符分割的问题有:字符粘连、字符断裂、数字“1”。字符粘连是指两个以上的字符连在一起,在垂直投影上的表现是原本应该为波谷的地方,现在却为非零的垂直投影值;字符断裂是一个字符分裂为几部分,在垂直投影上的表现为几段垂直投影;数字“1”的垂直投影值比较小,容易误判为噪声。可以结合车牌中字符的几何特征解决上述问题。设车牌中字符的宽度为 Width。

  1)字符粘连

  当 Width< charWdith < 1.5*Width,其中 charWidth 为粘连字符的宽度。此时为两个字符粘连的情形。可取 charWidth / 2 作为单个字符的宽度,以此来分割两个粘连的字符;若 1.5*Width< charWidth< 2*Width,此时为三个字符粘连的情况。通过单个字符具有固定的宽高比的先验知识,利用字符的高度求出字符的宽度。然后根据字符的宽度对粘连的字符进行分割。

  2)字符断裂

  若 charWidthi< 0.5*Width 且 0.5*Width > charWidthi+1。其中 charWidthi为当前字符的宽度,charWidthi+1为下一个字符的宽度。此时把当前字符和下一个字符合并。

  3)数字“1”

  当 charWidthi< 0.5*Width 且 0.5*Width < charWidthi+1时,统计区间宽度 charWidthi内的投影值大于 0.8*Height 的个数 nums,其中 Height 为车牌图像的高度。当符合条件 nums ≥ Thresh 时,其中 Thresh 为阈值,此时判定为数字“1”,否则为噪声。

  采用的车牌字符分割方法;对车牌图像进行灰度化处理,去除颜色信息,使后面的字符分割算法运行速度更快;对灰度车牌图像进行二值化处理(otsu),并统一车牌图像的背景和字符的颜色;对有一定倾斜角度的车牌图像进行倾斜校正处理,对车牌图像进行去边框处理;采用连通域与投影法相结合的方法对车牌图像进行字符分割,为后面的单个字符识别做准备。

车牌识别LPR(六)-- 字符分割的更多相关文章

  1. 车牌识别LPR系统系列文章汇总

    这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...

  2. 车牌识别LPR(三)-- LPR系统整体结构

    第三篇:系统的整体架构 LPR系统大体上可由图像采集系统,图像处理系统,数据库管理系统三个子系统组成.它综合了通讯.信息.控制.传感.计算机等各种先进技术,构成一个智能电子系统. 图像采集系统:图像采 ...

  3. 车牌识别LPR(八)-- 字符识别

    ​第八篇:字符识别 车牌定位.车牌倾斜校正.车牌字符分割都是为车牌字符识别做的前提工作,这些前提工作直接关系到车牌识别系统的性能.车牌字符识别是车牌识别系统的核心部分,车牌字符识别的准确率是衡量车牌识 ...

  4. 车牌识别LPR(四)-- 车牌定位

    第四篇:车牌定位 车牌定位就是采用一系列图像处理或者数学的方法从一幅图像中将车牌准确地定位出来.车牌定位提取出的车牌是整个车牌识别系统的数据来源,它的效果的好坏直接影响到整个系统的表现,只有准确地定位 ...

  5. 车牌识别LPR(二)-- 车牌特征及难点

    第二篇:车牌的特征及难点 2.1  对我国车牌的认识 我国目前使用的汽车牌号标准是 2007 年开始实施的<中华人民共和国机动车号牌>GA36-2007(2010 年修订).根据 GA36 ...

  6. 车牌识别LPR(一)-- 研究背景

    在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...

  7. 车牌识别LPR(七)-- 字符特征

    第七篇:字符特征 选择的字符特征应该满足以下条件: (1)选取的字符特征具有较强的鲁棒性,不受字符变形.弯曲等影响. (2)两个字符的字符特征不能完全相同,但部分相同是允许的,即选择的字符特征是唯一的 ...

  8. 车牌识别LPR(五)-- 一种车牌定位法

    该方法是某个文章中看到的,有点忘了是那一篇了,看的太多也太久了. Step1.把采集到的RGB图像转换为HSI图像. HSI模型能反映人对色彩的感知和鉴别能力,非常适合基于色彩的图像的相似比较,故采用 ...

  9. 探索 Python + HyperLPR 进行车牌识别

    概要 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...

随机推荐

  1. 【mongodb】 需求

    增删改查 增加:  (表名,增加内容) 删除: (表名,数据id) 改: (表名 根据id获取数据 修改 增加 查 (表名,字段 ) 关联查询? 请主站提供一下 在使用的接口

  2. ASP.NET Web - 回送

    如果希望把更改事件立即传送给服务器,可以把AutoPostback属性设置为true.这样就会使用客户端的JavaScript把窗体数据立即提交给服务器.当然,网络通信量也会增加.使用这个功能时要小心 ...

  3. JPA学习---第四节:JPA实例与JPA主键生成策略

    1.编写实体类,代码如下: package learn.jpa.bean; import javax.persistence.Entity; import javax.persistence.Gene ...

  4. DB天气app冲刺二阶段第九天

    今天是第九天了 不管怎么样也要收尾了赶紧,毕竟不可能做到尽善尽美了,时间不够了所以要把该砍掉的砍点,然后应对下周的大二同学的面试.尽量做好界面的美化工作这是最基本的了.毕竟我一直崇尚的就是UI设计了. ...

  5. 我只知道一点非常简单的关于MVC的验证

    我只知道一些非常简单的关于MVC的验证 如题,我只知道一点非常简单的关于MVC的验证,所以如果您接触过MVC的验证,相信也就不用看了,这个且当作是学习笔记吧. 先小讲解一下他基本的五个从Model里打 ...

  6. .NET核心代码保护策略-隐藏核心程序集

    经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德高人的.想想还是算了,那样估计会引来新一波 ...

  7. jquery each函数对应的continue 和 break方法

    continue: return true; break: return false; $("#oGrid").each(function (i, v) { if (i == 0) ...

  8. Java---算法---插入排序

    /** * 插入排序(升序) * * @param array */ public static void insertSort(int[] array) { int j = 0; // 下标从1开始 ...

  9. [设计模式] 9 装饰者模式 Decorator

    转:http://www.jellythink.com/archives/171#prettyPhoto 什么是装饰模式? 在GOF的<设计模式:可复用面向对象软件的基础>一书中对装饰模式 ...

  10. Java中finalize()

    垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Object已经实现了一个默认的,除非我们 ...