1、2.字符分割 103.字符识别 12四.设计GUI界面 16五课程设计总结和体会 17六参考文献 17七设计总代码 181.chepai_main.m 182.chepaidingwei.m 183.fenge.m 194.rando_bianhuan.m 215.zifushibie2.m 21一课程设计任务在交通管理过程中,通常采用视频监控方式对闯红灯和超速等违章车辆进行监督。对违章车辆,需要自动检测车牌信息,提取车牌号码,以便查找车主信息和监督管理。国内常用的一般车牌通常是是蓝底白字,长宽比3:1。1、对车牌图像进行预处理,然后进行车牌定位;2、进行字符分割;2、对车牌中的数字、字母和汉
2、字进行提取和识别;3、要求自行设计方案、编写代码实现上述功能,并设计车牌识别的软件界面。二课程设计原理及设计方案1.系统简述一个完整的车牌识别系统闭应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。当车辆到达触发图像采集单元时,系统采集当前的视频图像。车辆识别单元对图像进行处理,定位出牌照位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。车牌识别系统原理如图l所示。1)图像预处理:对汽车图像进行图像转换、图像增强等。2)车牌定位:从预处理后的汽车图像中分割出车牌图像。即在一幅车辆图像中找到车牌所在的位置。3)字符分割:对车牌图像进行几何校正、去噪、二值化以及
3、字符分割以从车牌图像中分离出组成车牌号码的单个字符图像4)字符识别:对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体
4、位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。车牌识别的最终目的就是对车牌上的文字进行识别。识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。 1)RGB转为灰度图像输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理
5、时也会降低系统的执行速度,因此对图像进行识别等处理时常将彩色图像转换为灰度图像,以加快处理速度。可对图像进行灰度化处理、提取背景图像、增强处理、图像二值化,边缘检测、滤波等处理。然后采用robert算子进行边缘检测,再用imopen和imclose对所得二值图像作开、闭操作进行滤波。彩色图像分为R、G、B三个分量,分别显示出红、绿、蓝等各种颜色,灰度化就是使彩色的R、G、B 分量相等的过程。灰度值大的像素点比较亮(像素值最大为255,为白色) ,反之比较暗(像素值最小为 0,是黑色) 。图像灰度化的算法在matlab调用的格式为:I=rgb2gray(I0);2) RGB转换到HSV空间表达颜
6、色的彩色空间有许多种, 最常见的是 RGB 彩色空间, 但是在 RGB彩色模型中各像素值是由 R、 G、 B三种分量的亮度值叠加而成, 这三种亮度值随光照强度的不同而改变, 而一般汽车图像的光照强度是不定的, 所以用 RGB颜色模型进行车牌识别是很困难的。HSV颜色模型对应于画家的配色模型, 它由色度 H、 饱和度 S、 亮度 V三个分量组成。由于这种模型具有线性伸缩性, 可感知的色差与颜色分量的相应样值上的欧几里德距离成比例, 因此 HSV颜色模型比 RGB颜色模型更直观、 更容易接受。图像RGB转换到HSV 空间的算法在matlab调用的格式为:I=rgb2hsv(I0);但我们取它的第二
7、通道I=(:,:2)时可以去掉许多不必要的信息,非常有利于后续处理工作。3.车牌定位 在车牌定位中首先用颜色定位法,因为在彩色图像中,它分别由R,G,B三个分量合成的,在这种情况下,每个像素由三个值来表征,并且可以表示为一个三维向量z=(z1,z2,z3)T,其分量是一个点的RGB彩色。当我们想要从一副彩色图像中提取具有指定颜色的所有区域,比如说,蓝色。令a表示我们感兴趣的平均蓝色。基于这一参数来分割彩色图像的一种方法是计算任意彩色点的z值和平均彩色a间的距离测度D(z,a)。然后,我们按如下方式分割图像: 1,D(z,a)T g= 0, 其它这里T为一个阈值。用这样的一种方法可以较好的,查找
8、出车牌的大概区域,然后我们再用形态学操作进行处理切割出车牌的水平区域,之后我们可以再用水平区域的图像来确定车牌的垂直区域图像,到此可以得到车牌的区域。但是可能这样一个区域不太精细,可以在后续工作中把它更精细的定位到字符区域。4.字符分割完成牌照区域的定位后,再将牌照区域分割为单个字符,可采用垂直投影法。在此设计中,对车牌字符的所有噪声都能很好的去除,字符与字符之间的间隙没有杂点和粘连,因此垂直投影时,七个峰值不会相连,所以查找切割字符时的步骤主要为如下: 从第一列开始查找,当第一个投影值不为0时,记录下第几列,然后继续查找投影值为0的点,记录下第几列,之后就可以切割出第一个字符来。其余字符的切
9、割也一样。5.字符识别在这个设计中,运用神经网络的方法进行识别,准确度较高。在神经网络的训练中,需要足量的模板,建立好输入,输出量,其中输入量就是每一字符样本,输出量就是一个样本或一类样本所要对应的数据输出。然后,建立训练网络,设置好相应的一些参数等,当精确度到达一定程度时,就可以停止训练,至此网络训练成功。当进行字符识别时,就可以调用已经训练好的网络,把每一个输入字符,与网络中的函数进行匹配,找到最匹配的进行相对应的数据输出,就可以判断究竟为那个字符。神经网络的matlab代码:1) 建立网络:net=newff(pr,850 1,logsig purelin,traingdx,learng
10、dm);2) 训练网络:net=train(net,p,t);P为输入量,t输出量3)调用网络:t=sim(net,p)三.课程设计的步骤和结果设计中主要分为三大块:车牌定位,字符分割,字符识别,因此就以上三块分别一一做一个方法讲解。此处以车牌1作为示例图像1.车牌定位主要分为:蓝色区域查找,形态学操作,水平区域定位,垂直区域定位等部分。1.1蓝色区域查找Y=imread(1.jpg)R=Y(:,:,1);G=Y(:,2);B=Y(:,3);m,n=size(R);for i=1:m for j=1:n if (R(i,j)20&R(i,j)10&G(i,j)108&B(i,j)R1(i,j)G1(i,j)B1(i,j) A9(i,j)=1; A9(i,j)=0;figure,imshow(A9);bg2=imdilate(A9,se);figure ,imshow(bg2)I3 = imfill(bg2,figure,imshow(I3)bw3=bwareaopen(I3,29000) ;figure,imshow(bw3)for y=1: Y(y)=sum(bw3(1:a,y);y=1:b;figure,plot(y,Y(y);title( if Y(y)=0 PY1=y;for y=b:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1