该方法是某个文章中看到的,有点忘了是那一篇了,看的太多也太久了。

Step1、把采集到的RGB图像转换为HSI图像。

  HSI模型能反映人对色彩的感知和鉴别能力,非常适合基于色彩的图像的相似比较,故采用HSI模型。假设HSI颜色模型各分量为H、S、I ,RGB 彩色模型的各个分量为 R,  G ,B ,则 RGB 转换 HSI 的公式为:

  其中H 表示色调,如红色、绿色、蓝色等,色调的取值范围为 [0 , 360],其对应颜色轮的角度。S表示饱和度,其意义是颜色的鲜艳度,可以用百分比来表示,从0%到完全饱和100%。 I表示亮度,是指颜色的明亮程度,通常用百分比表示,从黑0%到白100%。

  通过式把 RGB 彩色图像转换为 HSI 彩色模型的图像,HSI 彩色模型的图像,左侧为 RGB 彩色图像。从 HSI 颜色的图像中可以看出,高亮部分为车牌的蓝色区域。

Step2、提取 HSI 图像中的 H、S 分量。

(1)利用 H 分量进行图像颜色分割。由于蓝色的 H 分量值为 240 º,并且图像可能受到噪声污染,所以蓝色的 H 分量值有一定的波动。经过实验可得到蓝色分量 H 的最小值blue_MinH 为 220º,最大值 blue_MaxH 为 245º。假设二值图像为 Bw,Bw 和 HSI 图像具有相同的大小,Bw 中的所有元素都为 0。利用下式把满足蓝色区域条件的设为前景白色,即 Bw = 1;不满足条件的设为背景黑色,即Bw = 0。

(2)利用S分量对图像处理。因为受到天气、光照等条件的影响,非牌照区域也会和牌照区域的色调特征相同,因此可以利用 S 分量去掉饱和度小且满足蓝色色调范围的区域。设饱和度的阈值为 threshS,利用去掉满足蓝色色调条件但非车牌的区域。

Step3、利用车牌的几何特征去除候选区域中的非牌照部分。

  由于天气、光线等因素导致采集到的图像受到噪声的干扰,所以即使经过 Step1、Step2 的处理,仍然可能存在多个车牌的候选区域。利用车牌的几何特征可以过滤掉部分不符合条件的候选区域。常用的车牌几何特征有:候选区域的面积、外接矩形的宽度和高度、外接矩形的长宽比,本文采用候选区域的高度。具体做法如下:通过对 Step2 得到的二值图像 Bw 水平投影,得到水平投影图,其中水平投影值是同一行中的像素点的个数。基于车牌区域存在一定的高度的事实,设定车牌高度的最小值为 Height_Min,最大值为 Height_Max,候选区域的高度为 Heigh。当满足 Height_Min ≤ Height ≤ Height_Max 时,从图像中提取出高度为 Height 的候选区域。

Step4、为处理车辆和车牌颜色特征相同的情况,可以通过特征颜色边缘检测去除和车牌颜色特征相同的伪车牌区域。

  设图像 K(i,j)= (H(i,j),S(i,j), I(i,j)),其中 H(i,j),S(i,j), I(i,j)分别表示 K(i,j)的 H、S、I 分量。二维数组 K2(i,j)是边缘检测后的图像。采用以 K(i,j)为中心的 3×3窗口检测特定的颜色边缘。

(1)在 HSI 彩色模型中,满足式前两式时判为蓝色;满足式(2.4)则为白色。

(2)获取蓝白边缘图像。判断蓝白边缘的条件为:(a)K(i-1,j-1)、K(i,j-1)、K(i+1,j-1)都为蓝色像素点,K(i-1,j+1)、K(i,j+1)、K(i+1,j+1)均为白色像素点;(b)K(i-1,j-1)、K(i,j-1)、K(i+1,j-1)都为白色像素点,K(i-1,j+1)、K(i,j+1)、K(i+1,j+1)均为蓝色像素点。若满足(a)、(b)中的任意一个条件,则 K(i-1,j)、K(i,j)、K(i+1,j)为蓝白边缘点,令 K2(i-1,j)= K2(i,j) = K2(i+1,j) = 1,并将该窗口中的 K2 其它像素设为 0;若以上条件均不满足,则将该窗口位置的 K2 中的所有像素值置为 0。同时将窗口遍历整幅图像,得到蓝白边缘图。

(3)利用车牌的几何特征去掉不符合条件的候选区域。面积大小的计算定义为:蓝白边缘图像中白色的像素点的总数,即为 white_CountTotal。设车牌区域面积的最小值为 min_Area,最大值为 max_Area。当 min_Area ≤ white_CountTotal 并且 white_CountTotal ≤ max_Area,则认为是车牌区域。

Step5、确定车牌区域的宽度。

  经过前面的步骤已得到车牌区域,确切的说应该是车牌的高度,所以还需得到车牌的宽度。本文采用垂直投影的方法确定车牌的宽度。对车牌区域进行垂直投影。垂直投影值定义为图像中同一列为白色像素点的个数,记为vertical_Count,令垂直投影值的阈值为 verticalValue_Thresh。

  具体过程如下:

  •   首先从图像的最左边扫描图像的垂直投影值,当 vertical_Count ≥verticalValue_Thresh 时,该位置即为车牌区域的起点 wide_Start ;
  •   然后继续扫描直到vertical_Count ≤ verticalValue_Thresh 时,此位置则为车牌区域的终点 wide_End;
  •   最后得到车牌区域的宽度 wide = wide_End – wide_Start。

车牌识别LPR(五)-- 一种车牌定位法的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. 车牌识别LPR(六)-- 字符分割

    第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...

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

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

  9. 你知道现在有一种新的OCR技术叫“移动端车牌识别”吗?

    核心内容:车牌识别.OCR识别技术.移动端车牌识别.手机端车牌识别.安卓车牌识别.Android车牌识别.iOS车牌识别 一.移动端车牌识别OCR技术研发原理 移动端车牌识别是基于OCR识别的一种应用 ...

随机推荐

  1. 学C++之感悟

    程序设计真的就这么难得入门啊 最要命的事情就是看那些看不懂的书.断断续续地看C++Primer好几天了,还是一点眉目都没有,稀里糊涂的.看得头疼了用Google找过来人留下的东西看,无意中发现了一篇自 ...

  2. php服务器探针

    <?php /* ---------------------------------------------------- */ /* 程序名称: PHP探针-Yahei /* 程序功能: 探测 ...

  3. EntityFramework中的datetime2异常的解决

    (转)   最近使用.net的Entity Framework构建网站数据层,给一个实体的DATETIME类型的属性赋值时 突然莫名奇妙显示有一个类型不匹配的异常如下: System.Data.Sql ...

  4. Scene (场景视图) 详解

    控制二维切换的按钮 点击2D按钮可以激活2D模式.这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.当观察透视视图时,远离相机的物体看起来更小:然而,当正交投影视图的时候,物体的大小并不受相机 ...

  5. Unity Camera属性

    Camera属性 1.Clear Flags 清除标记:决定屏幕的那部分将被清除.当使用多个相机来描绘不同的游戏景象时,利用它是非常方便的. 2.Background 背景:在镜头中的所有元素描绘完成 ...

  6. final ,override关键字

    final 有时我们会定义这样一种类,我们不希望其他类继承它,或者不想考虑它是否适合作为一个基类.为了实现这一目的,c++ 11新标准提供了一种防止继承发生的方法,即在类名后跟一个关键字final: ...

  7. Team Homework #1 学长“学霸英语学习软件”试用

    简介: 一款英语单词记忆和管理辅助软件. 基本功能: 内置GRE词汇及其常考形态.Webster英语解释 单词发音功能 单词测验模式 简易词典功能 基本界面 词库单词读取 单词测试 优点: 1.界面简 ...

  8. bnuoj 25662 A Famous Grid (构图+BFS)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=25662 #include <iostream> #include <stdio.h ...

  9. 模仿易信的UI

    易信,它的UI还是很简洁,因此本人想模仿一下它,用了一天的时候来研究它的资源文件,终于被我写出来.先看下效果图吧.     (一)首页的标题     main_title.xml <?xml v ...

  10. 消息传递选择:返回值 or 抛出异常

    1.返回值 bool 不应该用来表示函数是否调用成功,而应该返回业务值,例如 IsExist,HasNext