基于MATLAB的车牌识别程序详解..精要ppt课件.ppt
《基于MATLAB的车牌识别程序详解..精要ppt课件.ppt》由会员分享,可在线阅读,更多相关《基于MATLAB的车牌识别程序详解..精要ppt课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、基于MATLAB的车牌识别系统,小组成员: 张佰涛 刘强伟崔敏滕秀萍龚恒耿,车牌识别系统的摄像头通过对经过指定区域的机动车辆进行拍照,因为照片会受到光照、拍摄位置和车辆行驶速度的影响,导致拍摄的图片不能准确的确定汽车的车牌。而车牌识别系统就通过对机动车辆的照片进行图像预处理、车牌定位、字符分割、字符识别等技术手段,从而得到清晰的机动车牌照的照片,从而提高现代智能交通的管理效率,可以说车牌识别系统对于现代智能交通至关重要。,系统技术:,本系统应用图像处理技术、车牌分割技术、字符特征提取方法、神经网络识别技术,模板匹配的方法来解决车辆牌照识别问题。完整的车牌识别系统包括图像采集、图像处理、车牌定位
2、、字符分割、字符识别、数据库、数据库支持模块等模块。,一、图像处理:,本系统中图像处理主要分为几个步骤:图像预处理,图像增强,图像去噪,图像切割,图像提取等几个步骤。 (一)图像预处理 收集到的图片一般为彩色图片,由于彩色图片占用存储容量大,处理时间长,因此需要对图像进行灰度转换,将彩色图像转换为灰度图像,灰度图像只保留亮度信息,方便使用,也为后面的对图像进行二值化处理提供方便。 程序:I1=rgb2gray(I); rgb2gray,MATLAB中灰度图像转换函数,原图及处理后的灰度图显示如下,一、图像处理,(二)、图像增强: 图像增强是数字图像处理过程中经常采用的一种方法。为了改善视觉效果
3、或者便于人和机器对图像的理解和分析,根据图像的特点或存在的问题采取的改善方法或者加强特征的措施称为图像增强。 采集的图片受天气、光照、观察点等制约,往往会产生对比度不足,图像细节不清,另外,图像传输过程中也会产生失真,影响识别率。 图像增强的方法有:中值滤波、直方图均衡,灰度拉伸、通天滤波、高斯滤波、多图像平均、领域平均。腐蚀膨胀等。,一、图像处理,(二)、图像增强: 本系统中使用到的方法有:平均滤波,膨胀腐蚀,直方图均衡 直方图均衡 程序:figure(2),subplot(1,2,2),imhist(I1;title(灰度图直方图); imhist函数,用来提取灰度图中直方图信息,用来直方
4、图均衡,增强图像。 处理后的直方图显示如下:,一、图像处理,(二)、图像增强: 膨胀腐蚀 程序:I3=imerode(I2,se); imerode,MATLAB中的腐蚀函数 处理后的腐蚀图像显示如下:,(三)、图像的去噪: 通常使用2种方法:线性滤波、中值滤波。线性滤波可以去除图像中某些类型的噪声,本程序中采用平均滤波发:邻域平均法的均值滤波器就非常适用于去除通过扫描得到的图像中的颗粒噪声。经邻域平均后,噪声的均值不变,噪声方差变小,说明噪声强度减弱了,即抑制了噪声。邻域平均法也平滑了图像信号,特别是可能使图像目标区域的边界变得模糊。可以证明,对图像进行邻域平均处理相当于图像信号通过一低通滤
5、波器。,相关的MATLAB 指令: h=fspecial(average,3); ;%平均值的设定 d=im2bw(round(filter2(h,d);%平均滤波,(四)、图像的边缘检测: 边缘是图像的最本特征,边缘检测在计算机视觉、图像分析等应用中起着重要的作用,使图像识别与分析的重要环节。边缘存在于目标与背景、目标与目标、区域与区域之间因此它是图像分割、形状特征、纹理特征的基础。缘具有方向与幅度两个特征。沿边缘走向,像素变化比较平缓。而垂直于边缘走向,则像素变化剧烈。这种剧烈可能呈现阶跃状,也可能呈现斜坡状。边缘的上的像素的一 阶导数较大; 二阶导数在边缘检测处值为零,呈现零交叉。这种特
6、点使得边缘检测可以利用数学方法获得,经典的边缘检测算子有Roberts、Sobel、Prewitt、LoG、Canny算子。,本设计中采用Roberts算子其MATLAB指令:I2=edge(I1,robert,0.15,both);%使用robert算子进行边缘检测。%将灰度图像用Robert算子计算,间距0.15,方向水平,垂直两个方向,图像边缘处理,利用Robert算子运算,要先进行牌照的倾斜校正。由于牌照的上下沿是两条明显的平行直线,因此,一般都采用霍夫(Hough)变换,检测出这两条直线,然后对牌照进行校正 。,汽车牌照的定位,是指从摄入的汽车图像中找到汽车牌照所在的位置,并把含有车
7、牌的子区域提取出来。从编程实现的角度来看,就是针对某汽车图像,通过运行某个定位算法,确定车牌子区域的对角坐标。为了准确而快速的实现车牌的定位,人们提出了许多定位算法。这些算法大都基于汽车牌照的不同特征而提出的。这些特征包括:,(1)车牌区域内字符的纹理特征。(2)车牌的格式标准和字符标准信息。(3)车牌区域水平或者垂直投影特征。(4)车牌区域的位置特点。(5)车牌的彩色信息。(6)频谱特征。,处理方法主要分为两大块:行定位与列定位。具体方法如下: 获取特征图像 要想从一整幅包括车身,背景等其他相对于车牌来说属于干扰因素的图像中提取出车牌,就必须抓住车牌区域的最主要特征。车牌区域最主要的特征应该
8、是:车牌的底色和车牌字的颜色形成强烈对比,而且灰度变化频繁。 程序: Blue_y=zeros(y,1); for i=1:y for j=1:x if(myI(i,j,1)=1) Blue_y(i,1)= Blue_y(i,1)+1; end end end,temp MaxY=max(Blue_y) PY1=MaxY; while (Blue_y(PY1,1)=5),while (Blue_x(1,PX2)PX1) PX2=PX2-1; end PX1=PX1-1; PX2=PX2+1; dw=I(PY1:PY2-8,PX1:PX2,:); 通过以上的行 列扫描确定了车牌的区域,并将车牌提
9、取 出来,效果如下图,程序部分详解,(1)图像预处理 function d=main(jpg) close all clc I1=imread(car2.jpg);%读入图片 figure(1),imshow(I);title(原图)%显示输出一个图形窗口 I1=rgb2gray(I);%变为灰度图像,图像转换预处理 figure(2),subplot(1,2,1) (灰度图); title(灰度图) figure图片产生一行两列子图激活第1个格子图 此部分是图像预处理部分,将采集到的图像转换为灰度图像, 便于后面处理,同时显示原图的图片以及处理好的灰度图片。,(2)图像增强与边缘检测figu
10、re(2),subplot(1,2,2),imhist(I1;title(灰度图直方图);)%显示图像直方图,图像增强处理,直方图均衡I2=edge(I1,robert,0.15,both);%将灰度图像用Robert算子计算,间距0.15,方向水平,垂直两个方向,图像边缘处理,利用Robert算子运算figure(3),imshow(I2)%显示边缘处理后的;title(robert算子边缘检测)se=1;1;1;%创造一个维度矩阵,用于腐蚀单位扫描I3=imerode(I2,se);%将I3灰度腐蚀,se为腐蚀算子figure(4),imshow(I3);title(腐蚀后图像);%对裁剪
11、好的图像进行图像增强处理,利用腐蚀处理se=strel(rectangle,25,25);%构建一个25为边长的正方形结构体图,I4=imclose(I3,se);%对I3利用正方形结构图闭运算,平滑图片轮廓,修补缝隙;figure(5),imshow(I4);title(平滑图像的轮廓);I5=bwareaopen(I4,2000);%删掉原图的面积小于2000的不必要的小部分figure(6),imshow(I5);title(从对象中移除小对象);y,x,z=size(I5);%I5是移除小对象后的图像,将I5各维尺寸存储在X,Y,Z中myI=double(I5);%换成双精度数据。 首
12、先利用直方图,统计灰度图中像素灰度的信息,对此进行直方图均衡,增强图像,将直方图显示;利用robert算子进行边缘检测,对原图进行处理,然后创建一个维度矩阵,用来进行腐蚀操作,将图像进一步增强,然后对图像进行进一步修补,建立一个正方形结构图进行闭运算,修补轮廓,填补缝隙。由于原图中存在车标志等因素的干扰,因此要对干扰消除,删除掉不必要的小部分。 最后将最终图像的图像数据各个维度存储在数组中,转换为双精度为下面的行列扫描做准备。(3)车牌区域的确定与提取 tic%保存当前时间,用toc计算程序运行时间 Blue_y=zeros(y,1);%产生y*1的全零矩阵 for i=1:y%对应图片中像素
13、点横向坐标 for j=1:x%对应图片中像素点纵向坐标 if(myI(i,j,1)=1) %灰度图像中白色表示为全1,若myI=1,则表示是数字区域,进行行扫描,列不变,所以j不变 %利用行数加一循环统计蓝色像素点,Blue_y(i,1)= Blue_y(i,1)+1;%Blue_y第i行第一列数值加一,即若图片中出现白色点,将对应的位置横向坐标存放在变量中,保存数字区域行信息 end end end %确定数字区域,将数字区域所在行信息输入 Blue_y中temp MaxY=max(Blue_y);%Y方向车牌区域确定 temp为blue-y最大值所在位置,maxy为最大值 PY1=Max
14、Y; while (Blue_y(PY1,1)=5),while (Blue_y(PY2,1)=5) %Blue_y第i行第一列数值加一,即若图片中出现白色点,将对应的位置横向坐标存放在变量中,保存数字区域列信息 end end end%纵向扫描,进一步确定车牌区域,PX1=1; while (Blue_x(1,PX1)PX1) PX2=PX2-1; end %从下至上截取一段区域,区域下限位PY2 PX1=PX1-1;%对车牌区域的校正 PX2=PX2+1; dw=I(PY1:PY2-8,PX1:PX2,:);%车牌区域提取,考虑到车牌边框区域,进行剪切 t=toc; %计算程序运行时间fi
15、gure(7),subplot(1,2,1),imshow(IY),title(行方向合理区域);%显示行合适区域图片,将它放在第一个小图位置,figure(7),subplot(1,2,2),imshow(dw),title(定位剪切后的彩色车牌图像)%显示车牌区域,放到第二个小图 imwrite(dw,dw.jpg);%将图像数据写入图像文件中 figure(8);subplot(3,2,1),imshow(b),title(1.车牌灰度图像)%产生3行两列子图,将灰度图放到第一个小图位置 通过运用for循环来进行行列扫描,将图片中数字部分所在的行 列信息付给变量,对变量的操作来完成对图片
16、车牌区域的提取。 (4)图像的二值化 灰度图像是有256个灰度级的单色图像,多级别的图像能够呈现出较为丰富的明暗度,但对于目标搜索来说,总是希望尽可能地减少背景像素的干扰,而保存或增强目标区的色素度。图像的二值化可把像素的灰度级分成黑与白二级,即把原灰度图像转化为二值图像,方便目标区域的处理。,本程序中采用的是基于纹理的全局二值化方法,先确定一个最佳阀值,通过对图片像素点和阀值的比较来实现图像的二值化。 程序:g_max=double(max(max(b);%最大值换为双精度数据 g_min=double(min(min(b);%最小值换位双精度数据 T=round(g_max-(g_max-
17、g_min)/3); % T 为二值化的阈值,g_max表 示车牌中二值最大点,g_min表示黑色像素点最小值,两个相减除以三,再用g_max减去,取中间值作为判断标准阀值过小,则干扰也算在内,正常显示受影响 m,n=size(b);%返回矩阵b中的数值保存在m n中 d=(double(b)=T); % d:如果满足条件,像素点置1,不满足,则为0,即满足条件的白色像素点不变,不满足的置为0,黑色 imwrite(d,2.车牌二值图像.jpg);%数据写入图像文件中 figure(8);subplot(3,2,2),imshow(d),title(2.车牌二值图像)%将二值图像放到第一行第二
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 车牌 识别 程序 详解 精要 ppt 课件
链接地址:https://www.31ppt.com/p-1325168.html