1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【MATLAB图像处理实用案例详解(3)】—— 基于阈值分割的车牌定位识别

【MATLAB图像处理实用案例详解(3)】—— 基于阈值分割的车牌定位识别

时间:2019-09-10 21:08:33

相关推荐

【MATLAB图像处理实用案例详解(3)】—— 基于阈值分割的车牌定位识别

目录

一、背景意义二、理论基础2.1 车牌区域分割:2.2 车牌定位及裁剪三、算法流程3.1 车牌图像处理3.1.1 图像灰度化3.1.2 图像二值化3.1.3 图像边缘检测3.1.4 图像形态学运算3.1.5 图像滤波处理3.2 车牌定位原理3.3 车牌字符处理3.3.1 阈值分割原理3.3.2 对车牌阈值化分割3.3.3 字符归一化处理3.4 字符识别3.4.1 字符识别简述3.4.2 基于模板匹配的字符识别方法四、效果演示五、完整代码

一、背景意义

车牌识别主要包括以下三个主要步骤:车牌区域定位、车牌字符分割、车牌字符识别。

本案例通过对采集的车牌图像进行灰度变换边缘检测腐蚀及平滑等过程来进行车牌图像预处理,并由此得到一种基于车牌颜色纹理特征的车牌定位方法,最终实现了车牌区域定位。车牌字符分割是为了方便后续对车牌字符进行匹配,从而对车牌进行识别。本案例采用了模板匹配的方法,对输出的字符图像和模板库里的模板进行匹配以得到对应于车牌字符的具体信息。

二、理论基础

车牌定位与字符识别技术以计算机图像处理、模式识别等技术为基础,通过对原图像进行预处理及边缘检测等过程来实现对车牌区域的定位,然后对车牌区域进行图像裁剪、归一化、字符分割及保存,最后将分割得到的字符图像与模板库的模板进行匹配识别,输出匹配结果。

2.1 车牌区域分割:

2.2 车牌定位及裁剪

步骤:

(1)首先对输入的车牌图像进行预处理以得到精确的车牌字符图像;

(2)将处理后的车牌看作由连续的字符块组成,设定一个灰度阈值,如果超过该阈值, 则认为有多个字符相连,需要对其进行切割, 进而实现对车牌字符的分割;

(3)把分割的字符图片进行标准化并与模板库进行对比,选出最相似的字符结果并输

出,即为车牌信息。

三、算法流程

3.1 车牌图像处理

3.1.1 图像灰度化

车牌图像一般是RGB图像,可采用加权平均值法对原始RGB图像进行灰度化处理0.299*R+0.587*G+0.114*B

3.1.2 图像二值化

图像二值化是指在整幅图像内仅保留黑、白二值的数值矩阵,在车牌图像处理系统中,进行图像二值过程的关键是选择合适的阈值,使得车牌字符与背景能够得到有效分割

3.1.3 图像边缘检测

边缘是指图像局部亮度变化最显著的部分, 主要存在于目标与目标、目标与背景、区域与区域、颜色与颜色之间,是图像分割、纹理特征提取和形状特征提取等图像分析的重要步骤之一。车牌识别系统中边缘提取对于车牌位置的检测有很重要的作用,常用的边缘检测算子有很多,如Roberts 、Sobel 、Prewitt 、Laplacian 、log 及canny等。据试验分析,canny 算子对弱边缘的检测相对精确,能更多地保留车牌区域的特征信息,所以本案例采用canny 算子来进行边缘检测。

canny 算子的边缘检测算法步骤:

预处理。采用高斯滤波器进行图像平滑。梯度计算。采用一阶偏导的有限差分来计算梯度,获取其幅值和方向。梯度处理。采用非极大值抑制方法对梯度幅值进行处理。边缘提取。采用双阔值算法检测和连接边缘。

3.1.4 图像形态学运算

由于受到噪声的影响,车牌图像在阈值化后所得到的边界往往是不平滑的,目标区域内部也具有一些噪声孔洞,在背景区域上也会散布着一些小的噪声干扰。通过连续的开和闭运算可以有效地改善这种情况,有时甚至需要经过多次腐蚀之后再加上相同次数的膨胀,才可以产生比较好的效果。

3.1.5 图像滤波处理

图像滤波能够在尽量保留图像细节特征的条件下对噪声进行抑制,均值滤波也称为线性滤波,采用的主要方法为邻域平均法。该方法对滤波像素的位置(x,y) 选择一个模板, 该模板由其近邻的若干像素组成,求出模板中所包含像素的均值,再把该均值赋予当前像素点( x, y) ,将其作为处理后的图像在该点上的灰度值g (x,y) ,即g(x,y)=1/M(sum( f(x,y))), M 为该模板中包含当前像素在内的像素总个数。

采集车牌图像的过程往往会受到多种噪声的污染,在将要处理的车牌图像上呈现一些较为明显的孤立像素点或像素块,影响图像增强、图像分割、特征提取、图像识别等后继工作的进行。本案例采用均值滤波来对车牌图像进行去噪处理。

3.2 车牌定位原理

车牌区域具有明显的特点,根据车牌底色、字色等有关知识,可采用彩色像素点统计的方法分割出合理的车牌区域。本案例以蓝底白字的普通车牌为例说明彩色像素点统计的分割方法。

假设采集得到了包含车牌的RGB 彩色图像,水平方向记为y, 垂直方向记为x,则:

1)确定车牌底色RGB 各分量分别对应的颜色范围;

2)在y 方向统计此颜色范围内的像素点数量,设定合理的阈值,确定车牌在y方向的合理区域;

3)在分割出的y 方向区域内统计x 方向此颜色范围内的像素点数量,设定合理的阀值进行定位;

4)根据x 、y 方向的范围来确定车牌区域,实现定位。

3.3 车牌字符处理

3.3.1 阈值分割原理

对灰度图像进行阈值分割就是先确定一个处于图像灰度取值范围内的阈值,然后将图像中各个像素的灰度值与这个阈值比较,并根据比较的结果将对应的像素划分为两类:像素灰度大于阈值像素灰度值小于阈值。分割后的两类像素一般分属图像的两个不同区域,所以对像素根据阈值分类达到了区域分割的目的。阈值分割算法主要有以下两个步骤:

确定需要进行分割的阈值。将阈值与像素点的灰度值比较,以分割图像的像素。

选择阈值方法来分割灰度图像:

对图像的灰度直方图分布进行某些分析。常用的图像双峰灰度模型的条件可描述如下: 假设图像目标和背景直方图具有单峰分布的特征,且处于目标和背景内部相邻像素间的灰度值是高度相关的,但处于目标和背景交界处两边的像素在灰度值上有很大的差别。

如果一幅图像满足这些条件, 则它的灰度直方图基本上可看作由分别对应于目标和背景的两个单峰构成如果这两个单峰部分的大小接近且均值相距足够远,两部分的均方差也足够小,则直方图整体上呈现较明显的双峰现象

多级阈值如果在图像中有多个呈现单峰灰度分布的目标,则直方图整体上可能呈现较明显的多峰现象。如果只用一个阈值分割,则可称之为单阈值分割方法;如果用多个阈值分割,则可称之为多阈值分割方法

值得注意的是,阈值分割在分割结果中都有可能出现不同区域内部包含有相同标号或区域值的情况。这是因为阈值分割算法只考虑了像素本身的灰度值,并未考虑像素的空间位置。根据像素灰度值划分到同一类的像素有可能分属于图像中不相连通的区域

3.3.2 对车牌阈值化分割

车牌字符图像的分割即将车牌的整体区域分割成单字符区域,以便后续进行识别。车牌字符分割的难点在于字符与噪声粘连,以及字符断裂等因素的影响均值滤波是典型的线性滤波算法,它是指在图像上对像素进行模板移动扫描,该模板包括了像素周围的近邻区域, 通过模板中像素的平均值来代替原来的像素值, 实现去噪的效果。为了从车牌图像中直接提取目标字符, 最常用的方法是设定一个阈值T , 用T 将图像的像素分成两部分:大于T 的像素集合和小于T 的像素集合,得到二值化图像。本案例采用均值滤波算法来对车牌字符图像进行滤波去噪,采用阈值分割来进行车牌字符的分割

3.3.3 字符归一化处理

车牌字符分割后往往会出现大小不一致的情况,因此可采用基于图像放缩的归一化处理方式将字符图像进行尺寸放缩以得到统一大小的字符图像,便于后续的字符识别。

3.4 字符识别

3.4.1 字符识别简述

车牌字符识别方法基于模式识别理论,常用的有以下几类。

1)结构识别

该方法主要由识别及分析两部分组成: 识别部分的主要包括预处理、基元抽取(包括基元和子图像之间的关系)和特征分析;分析部分包括基元选择及结构推理。

2)统计识别

该方法的目的在于确定已知样本所属的类别,以数学上的决策论为理论基础,并由此建立统计学识别模型。基本方式是对所研究的图像实施大量的统计分析工作, 寻找规律性认知,提取反映图像本质的特征并进行识别。

3) BP 神经网络

该方法以BP 神经网络模型为基础,属于误差后向传播的神经网络,是神经网络中使用最广泛的一类,通过输入层、隐层和输入层三层网络的层间全互联方式,具有较高的运行效率和识别准确率。

4)模板匹配

该方法是数字图像处理中的最常用的识别方法之一,通过建立已知的模式库,再将其应用到输入模式中寻找与之最佳匹配模式的处理步骤,得到对应的识别结果,具有很高的运行效率。

3.4.2 基于模板匹配的字符识别方法

建库。建立已经过标准化的字符模板库。比对。将归一化的字符图像与模板库中的字符进行比对,在实际实验中充分考虑了我国普通小汽车牌照的特点,即第一位字符是汉字, 分别代表各个省的简称,第二位是A ~ Z 的字母,后五位则是数字和字母的混合搭配,因此为了提高比对过程的效率和准确性,分别对第一位、第二位和后五位字符进行识别。输出。在识别完成后输出所得到的车牌字符结果。

1)根据已知条件建立模板库T(i, j)

2)从待识别的图像或图像区域f(i,j)中提取若干特征量与T(i,j)相应的特征量进行比对,计算它们之间归一化的互相关量。(互相关量最大的一个表示二者的相似程度最高,可将图像属于该类别)。也可以计算图像与模板特征量之间的距离,采用最小距离法判定所属类别。

在实际情况下用于匹配的图像其采集成像条件往往存在差异,可能会产生较大的噪声干扰。此外,图像经过预处理和归一化处理等步骤,其灰度或像素点的位置也可能会发生改变,进而影响识别效果。因此,在实际设计模板时,需要保持各区域形状的固有特点,突出不同区域之间的差别,并充分考虑处理过程可能会引起的噪声和位移等因素,按照基于图像不变特性所对应的特征向量来构建模板,提高识别系统的稳定性。

流程图如下:

本案例采用特征向量距离计算的方法来求得字符与模板中字符的最佳匹配,然后找到对应的结果进行输出。

首先,遍历字符模板;

其次,依次将待识别的字符与模板进行匹配,计算其与模板字符的特征距离,得到值越小就越匹配;

然后,将每幅字符图像的匹配结果进行保存;

最后, 7 个字符匹配识别结果即可作为车牌字符进行输出。

四、效果演示

五、完整代码

ok,以上便是全部内容了,如果需要源代码,可以参考资源:

基于阈值分割的车牌定位识别:/download/didi_ya/87374396

,如果遇到任何运行问题,请私信博主,看到后会免费答疑解惑,当然也可跟你你的需求修改GUI界面。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。