基于Matlab的车牌识别系统Word文档格式.docx

上传人:b****5 文档编号:19640664 上传时间:2023-01-08 格式:DOCX 页数:17 大小:827.29KB
下载 相关 举报
基于Matlab的车牌识别系统Word文档格式.docx_第1页
第1页 / 共17页
基于Matlab的车牌识别系统Word文档格式.docx_第2页
第2页 / 共17页
基于Matlab的车牌识别系统Word文档格式.docx_第3页
第3页 / 共17页
基于Matlab的车牌识别系统Word文档格式.docx_第4页
第4页 / 共17页
基于Matlab的车牌识别系统Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于Matlab的车牌识别系统Word文档格式.docx

《基于Matlab的车牌识别系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Matlab的车牌识别系统Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

基于Matlab的车牌识别系统Word文档格式.docx

将图像变为灰度图。

im是待处理图像,Im_gray是处理后的图像。

B=medfilt2(A,[mn]);

用指定大小为m×

n的窗口对图像A进行中值滤波。

BW=im2bw(I,level)通过设定亮度将阈值灰度、真彩、索引图像转换为二值图像。

Level是归一化的阈值,值域为[0,1]。

BW=edge(I,'

roberts'

thresh);

采用robert算子进行边缘检测。

Thresh是所指定的敏感度阈值。

ones产生全1数组,zeros产生全零数组。

ones(a,b)产生a行b列全1数组。

ones(a)产生a行a列全1数组。

Matlab基于腐蚀和膨胀的边缘检测

腐蚀:

删除对象边界某些像素。

膨胀:

给图像中的对象边界添加像素。

在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。

在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。

在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1;

而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。

在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。

结构元素的原点定义在对输入图像感兴趣的位置。

对于图像边缘的像素,由结构元素定义的邻域将会有一部分位于图像边界之外。

为了有效处理边界像素,进行形态学运算的函数通常都会给出超出图像、未指定数值的像素指定一个数值,这样就类似于函数给图像填充了额外的行和列。

对于膨胀和腐蚀操作,它们对像素进行填充的值是不同的。

对于二进制图像和灰度图像,膨胀和腐蚀操作使用的填充方法如下表:

腐蚀和膨胀填充图像规则表

规则

腐蚀

超出图像边界的像素值定义为该数据类型允许的最大值,对于二进制图像,这些像素值设置为1;

对于灰度图像,unit8类型的最小值也为255。

膨胀

超出图像边界的像素值定义为该数据类型允许的最小值,对于二进制图像,这些像素值设置为0;

对于灰度图像,unit8类型的最小值也为0。

B1=imdilate(B0,se);

图像的膨胀。

B0是待处理的输入图像,se是结构元素对象

B2=imerode(B1,se);

图像的腐蚀,参数同上。

imcrop

功能:

剪切图像.

语法:

I2=imcrop(I)

X2=imcrop(X,map)

RGB2=imcrop(RGB)

I2=imcrop(I,rect)

X2=imcrop(X,map,rect)

RGB2=imcrop(RGB,rect)

函数bwareaopen——删除小面积对象

格式:

BW2=bwareaopen(BW,P,conn)

作用:

删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。

se=strel('

square'

6);

%创建n*n的正方形 

C=max(A,[],dim)max是对矩阵求最大值。

得到每行的最大值,用列向量形式输出。

C=min(A,[],dim)min是对矩阵求最小值。

得到每行的最小值,用列向量形式输出。

B=sum(A,dim)sum对列向量求和。

[m,n]=size(X)求出矩阵的大小用m*n表示

imwrite(d,‘A.jpg’);

把d保存为文件名是A.jpg的图像文件

自定义函数:

functione=qiege(d);

对指定区域进行切割。

function[word,result]=getword(d);

从车牌中分割出第n个字符。

 

五、详细设计步骤

1.提出总体设计方案。

车辆牌照识别整个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;

字符识别可以分为字符分割与特征提取和单个字符识别两个模块。

为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。

但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。

牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。

由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。

因此,需要对字符在识别之前再进行一次针对性的处理。

车牌识别的最终目的就是对车牌上的文字进行识别。

主要应用的为模板匹配方法。

因为系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以处理器和内存要求比较高,CPU要求主频在600HZ及以上,内存在128MB及以上。

系统可以运行于Windows98、Windows2000或者WindowsXP操作系统下,程序调试时使用matlab。

2.各模块的实现。

一、预处理及边缘提取

图2预处理及边缘提取流程图

1、图象的采集与转换

考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色B通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。

因为蓝色(255,0,0)与白色(255,255,255)在B通道中并无区分,而在G、R通道或是灰度图象中并无此便利。

同理对白底黑字的牌照可用R通道,绿底白字的牌照可以用G通道就可以明显呈现出牌照区域的位置,便于后续处理。

原图、灰度图及其直方图见图2与图3。

对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算:

G=0.110B+0.588G+0.302R

(1)

G=

(2)

图3图4

2、边缘提取

边缘是指图像局部亮度变化显著的部分,是图像风、纹理特征提取和形状特征提取等图像分析的重要基础。

所以在此我们要对图像进行边缘检测。

图象增强处理对图象牌照的可辩认度的改善和简化后续的牌照字符定位和分割的难度都是很有必要的。

增强图象对比度度的方法有:

灰度线性变换、图象平滑处理等。

(1)灰度校正

由于牌照图象在拍摄时受到种种条件的限制和干扰,图象的灰度值往往与实际景物不完全匹配,这将直接影响到图象的后续处理。

如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图象中央区域和边缘区域的灰度失衡,或是由于摄像头在扫描时各点的灵敏度有较大的差异而产生图象灰度失真,或是由于曝光不足而使得图像的灰度变化范围很窄。

这时就可以采用灰度校正的方法来处理,增强灰度的变化范围、丰富灰度层次,以达到增强图象的对比度和分辨率。

我们发现车辆牌照图象的灰度取值范围大多局限在r=(50,200)之间,而且总体上灰度偏低,图象较暗。

根据图象处理系统的条件,最好将灰度范围展开到s=(0,255)之间,为此我们对灰度值作如下的变换:

s=T(r)r=[rmin,,rmax]

使得S∈[Smin,Smax],其中,T为线性变换,

图5灰度线性变换

(3)

若r(50,200)、s(0,255)

则:

(4)

图6灰度增强后的图像

(2)平滑处理

对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低

4

3

2

5

i,j

1

6

7

8

通滤波器来滤除噪声,但实际中为了简化算法,

也可以直接在空域中用求邻域平均值的方法来

削弱噪声的影响,这种方法称为图象平滑处理。

例如,某一象素点的邻域S有两种表示方法:

8邻域和4邻域分别对应的邻域平均值为,

图78-邻域、4-邻域模板

(5)

其中,M为邻域中除中心象素点f(i,j)之外包括的其它象素总数,对于4邻域M=4,8邻域M=8。

然而,邻域平均值的平滑处理会使得图象灰度急剧变化的地方,尤其是物体边缘区域和字符轮廓等部分产生模糊作用。

为了克服这种平均化引起的图象模糊现象,我们给中心点象素值与其邻域平均值的差值设置一固定的阈值,只有大于该阈值的点才能替换为邻域平均值,而差值不大于阈值时,仍保留原来的值,从而减少由于平均化引起的图象模糊。

图8平滑处理后的图像

图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:

近似水平的矩形区域;

其中字符串都是按水平方向排列的;

在整体图象中的位置较为固定。

正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。

边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。

图9未滤波直接提取出的边缘图10经灰度校正后提取的边缘图11经平滑处理后提取的边缘

对比以上几幅图片,图8的边缘已经模糊掉了。

图7中包含的噪声太多,图9未经滤波直接提取出的边缘图像最清晰,所包含的有用信息最多。

分析这种情况产生的原因,归纳起来主要有以下方面:

1、原始图像清晰度比较高,从而简化了预处理

2、图像的平滑处理会使图像的边缘信息受到损失,图像变得模糊

3、图像的锐化可以增强图像中物体的边缘轮廓,但同时也使一些噪声得到了增强

综上所述,结合MATLAB实验过程,得出不是每一种图像处理之初都适合滤波和边界增强。

本次汽车车牌的识别,为了保存更多的有用信息,经过多次比较,选择图9作为后期处理的依据。

二、牌照的定位和分割

由于牌照图象在原始图象中是很有特征的一个子区域,确切说是水平度较高的横向近似的长方形,它在原始图象中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图象进行分割。

图12牌照定位于分割流程图

1、牌照区域的定位

牌照图象经过了以上的处理后,牌照区域已经十分明显,而且其边缘得到了勾勒和加强。

此时可进一步确定牌照在整幅图象中的准确位置。

这里选用的是数学形态学的方法,其基本思想是用具有一定形态的机构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。

数学形态学的应用可以简化图像数据,保持它们基本的形态特征,并除去不相干的结构。

在本程序中用到了膨胀和闭合这两个基本运算,最后还用了bwareaopen来去除对象中不相干的小对象。

图13腐蚀后图像图14平滑图像的轮廓图15从对象中移除小对象后图像

2、牌照区域的分割

对车牌的分割可以有很多种方法,本程序是利用车牌的彩色信息的彩色分割方法。

根据车牌底色等有关的先验知识,采用彩色像素点统计的方法分割出合理的车牌区域,确定车牌底色蓝色RGB对应的各自灰度范围,然后行方向统计在此颜色范围内的像素点数量,设定合理的阈值,确定车牌在行方向的合理区域。

然后,在分割出的行区域内,统计列方向蓝色像素点的数量,最终确定完整的车牌区域。

图16行方向区域和最终定位出来的车牌

3、车牌进一步处理

经过上述方法分割出来的车牌图像中存在目标物体、背景还有噪声,要想从图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:

大于T的像素群和小于T的像素群,即对图像二值化。

均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素。

再用模板中的全体像素的平均值来代替原来像素值。

图17裁剪出来的车牌的进一步处理过程图

三、字符的分割与归一化

图17字符分割与归一化流程图

1、字符分割

在汽车牌照自动识别过程中,字符分割有承前启后的作用。

它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。

字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割。

图18分割出来的七个字符图像

2、字符归一化

一般分割出来的字符要进行进一步的处理,以满足下一步字符识别的需要。

但是对于车牌的识别,并不需要太多的处理就已经可以达到正确识别的目的。

在此只进行了归一化处理,然后进行后期处理。

图19归一化处理后的七个字符图像

四、字符的识别

字符的识别目前用于车牌字符识别(OCR)中的算法主要有基于模板匹配的OCR算法以及基于人工神经网络的OCR算法。

基于模板匹配的OCR的基本过程是:

首先对待识别字符进行二值化并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。

用人工神经网络进行字符识别主要有两种方法:

一种方法是先对待识别字符进行特征提取,然后用所获得的特征来训练神经网络分类器。

识别效果与字符特征的提取有关,而字符特征提取往往比较耗时。

因此,字符特征的提取就成为研究的关键。

另一种方法则充分利用神经网络的特点,直接把待处理图像输入网络,由网络自动实现特征提取直至识别。

模板匹配的主要特点是实现简单,当字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高。

综合模板匹配的这些优点我们将其用为车牌字符识别的主要方法。

模板匹配是图象识别方法中最具代表性的基本方法之一,它是将从待识别的图象或图象区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的类。

也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。

然而,通常情况下用于匹配的图象各自的成像条件存在差异,产生较大的噪声干扰,或图象经预处理和规格化处理后,使得图象的灰度或像素点的位置发生改变。

在实际设计模板的时候,是根据各区域形状固有的特点,突出各类似区域之间的差别,并将容易由处理过程引起的噪声和位移等因素都考虑进去,按照一些基于图象不变特性所设计的特征量来构建模板,就可以避免上述问题。

图20字符识别流程图

此处采用相减的方法来求得字符与模板中哪一个字符最相似,然后找到相似度最大的输出。

汽车牌照的字符一般有七个,大部分车牌第一位是汉字,通常代表车辆所属省份,或是军种、警别等有特定含义的字符简称;

紧接其后的为字母与数字。

车牌字符识别与一般文字识别在于它的字符数有限,汉字共约50多个,大写英文字母26个,数字10个。

所以建立字符模板库也极为方便。

为了实验方便,结合本次设计所选汽车牌照的特点,只建立了4个数字26个字母与10个数字的模板。

其他模板设计的方法与此相同。

首先取字符模板,接着依次取待识别字符与模板进行匹配,将其与模板字符相减,得到的0越多那么就越匹配。

把每一幅相减后的图的0值个数保存,然后找数值最大的,即为识别出来的结果。

图21识别结果

六、演示方案及步骤

通过以上的方法,我对多幅图像进行了检测,有较好的识别效果。

下面是对另一幅车牌照的检测,结果如图22---26所示。

打开文件夹程序与图像。

找到主程序文件main.m,双击打开。

键入所需处理的图片文件,如car2.jpg.单击运行按钮,得到以下几个主要结果:

图22图23

图24

图25

图26

七、设计过程中出现的问题及解决方案

1.本程序用像素颜色来识别车牌,只能识别蓝色车牌。

改变相应的颜色判别阈值即可解决。

2.本程序并未对车牌的倾斜程度进行判断,所以只使用较为水平的车牌。

3.对于光照条件不理想的图像,可先进行一次图像增强处理,使得图像灰度动态范围扩展和对比度增强,再进行定位和分割,这样可以提高分割的正确率。

4.目前牌照字符的识别率还不理想,但是只要在分割出的字符的大小、位置的归一化,以及尝试提取分类识别能力更好的特征值和设计分类器等环节上再完善,进一步提高识别率是完全可行的。

八、总结

本文主要解决了以下几个问题:

一、在背景的图象中如何定位分割牌照区域;

二、对分割下来的牌照字符如何提取具有分类能力的特征;

三、如何设计识别器。

在车辆牌照字符识别系统的研究领域,近几年出现了许多切实可行的识别技术和方法,从这些新技术和方法中可以看到两个明显的趋势:

一是单一的预处理和识别技术都无法达到理想的结果,多种方法的有机结合才能使系统有效识别能力提高。

在本系统的设计时,也汲取了以上一些算法的思想,结合实际,反复比较,综合分析;

二是在有效性和实用的原则下,结合神经网络和人工智能的新技术的应用是研究的一个方向。

根据车牌特点,一般采用的车牌定位算法有:

1.边缘检测定位算法;

2.利用哈夫变换进行车牌定位;

3.色彩分割提取车牌等。

这里我采用的是边缘检测的方法实现定位的。

字符分割的方法也有多种:

1.基于聚类分析的字符分割;

2.投影分割的方法;

3.基于模板匹配的字符分割等。

最常用的是投影分割,主要是针对在车牌定位,图像预处理后比较规则的车牌图像。

优点是程序逻辑设计简单,循环执行功能单一,便于设计和操作,程序执行时间短。

字符识别的基本方法通常又三类:

1.结构特征分析方法;

2.模板匹配法;

3.神经网络法。

此处采用的是模板匹配的方法,即是将要识别的字符与事先构造好的模板进行比对,根据与模板的相似度的大小来确定最终的识别结果。

但是系统本身还存在许多不足,距离具体实用的要求仍有很大差距,但我却在这次课程设计中学到了很多知识。

九、体会

课程设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。

通过这次课程设计使我明白了自己原来知识还比较欠缺。

这个课程设计让我学到了很多东西,涉及到方方面面的知识,在这整个过程中我们查阅了大量的资料,得到了老师和同学的帮助,我在此对他们表示谢意。

在这期间遇到了很多困难,我知道做什么都不容易,只能塌下心来,一步一个脚印的去完成才行。

这学期我们学习了数字图像处理这门课程,在这个课程设计中应用到了很多其中的知识。

理论只有应用到实际中才能学着更有意义。

学习是一个长期积累的过程,在后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

此外,还得出一个结论:

知识必须通过应用才能实现其价值!

有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了信心,相信会对今后的学习工作生活有非常重要的影响。

同样此次课程设计也大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。

虽然这个设计做的并非对所以车牌都合适,但是在设计过程中所学到的学习方法是我最大收获和财富,相信定会使我受益终身。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1