欢迎来到天天文库
浏览记录
ID:37860083
大小:759.50 KB
页数:11页
时间:2019-06-01
《MATLAB车牌识别过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、7.3系统详细设计7.3.1车牌图像读入目前常用的图像格式主要有*.PCX、*.BMP、*.JPG、*.TIFF、*.GIF等,本设计采集到的图片格式为*.JPG格式,这种格式的图像占有的存储空间小,而且是使用最广的图片保存和传输格式,大多数的摄像设备也都是以*.JPG格式保存图像的。利用图像工具的图像读取函数imread()来读取一副图像,其使用格式为:I=imread(‘fnpn’);%fn为图像文件名,pn为文件路径使用图像工具的图像显示函数imshow()来显一副图像,使用格式为:Imshow(I);具体代码为:[fnpn]=uigetfile(‘*.JPG’,
2、’选择图片’);%选择图像文件,fn为文件名,pn为路径I=imread([fnpn]);%显示所选图像Figure,imshow(I);title(‘原始车牌图像’);%在新建的figure中显示所选图像文件,figure标题为原始车牌图像以一副名为“桂APC322”的车牌图片为例,程序运行结果为:7.3.2彩色(基于蓝色)车牌定位、提取将彩色车牌读入后,采用水平垂直双向投影法,将图像分别投影到X、Y坐标轴,然后分别沿X、Y轴扫描图像。当沿Y轴扫描时,一边扫描一边统计图像中蓝色像素点的个数,第一次扫描到蓝色像素点最多的行时停止扫描,并记录下蓝色像素点最多的行,然后以这
3、行为基点,分别向上、向下扫描直到统计的像素点小于像素点阀值时,停止扫描,记录上下行的Y轴坐标PY2,PY1,I=(PY1:PY2,:,:)就为Y轴方向的车牌区域,代码如下:Blue_y=zeros(y,1);fori=1:yforj=1:xif((myI(i,j,1)<=48)&&((myI(i,j,2)<=100)&&(myI(i,j,2)>=40))&&((myI(i,j,3)<=200)&&(myI(i,j,3)>=80)))Blue_y(i,1)=Blue_y(i,1)+1;%统计蓝色像素点endendend[tempMaxY]=max(Blue_y);%PY1
4、=MaxY;%while((Blue_y(PY1,1)>=Y_threshlow)&&(PY1>1))%PY1=PY1-1;endPY2=MaxY;while((Blue_y(PY2,1)>=Y_threshlow)&&(PY25、;运行结果如下:同理可得X轴方向的车牌区域:两者结合可提取出完整的车牌区域:7.3.3车牌图像灰度化由于车牌底色跟上面的字符的颜色对比度很大,所以将RGB图像转化为灰度图时,车牌底色跟字符的灰度值也会相差很大,这样就可以很明显的显现出车牌区域,便于后续处理。本系统使用的是MATLAB内的灰度图转换函数rgb2gray(),其图像灰度值计算公式为:G=0.299R+0.578G+0.114B;程序源代码为:bw=rgb2gray(I);figure(6),imshow(bw);title(‘灰度图像’);运行结果为:7.3.4车牌倾斜校正由于摄像头拍摄角度的不同,可能使拍6、摄的车牌图片也发生倾斜,为了图像的后续处理以及很好的去识别字符,需对提取的带有倾斜的车牌图像进行校正。本系统采用的办法是,首先用radon算法进行倾斜角度计算,然后根据倾斜角对图片精选修正,从而得到水平方向一致的图片,利于后期的分割识别。代码如下:I=edge(I);%theta=1:180;[R,xp]=radon(I,theta);[I,J]=find(R>=max(max(R)));%bw=imrotate(bw,qingxiejiao,'bilinear','crop');figure,imshow(bw);title('车牌倾斜');运行结果如下:7.3.5车7、牌图像处理对车牌灰度图像的处理主要有二值化、腐蚀、去除干扰、膨胀、擦除、取反,都可以直接使用图像工具箱的图像处理函数。经过以上处理过程后可以得到带边框的白底黑字的车牌图片,但是由于还存在车牌的边框,需要对其进行二次的裁剪,裁剪方法跟上面阐述的提取彩色车牌方法相似,先将图片水平垂直投影,然后统计黑色像素点,找到字符边缘进行裁剪,得到除去边框的白底黑字的车牌照。代码如下:SE=ones(3,3);bw=im2bw(bw);figure,imshow(bw);title('二值化');bw=imerode(bw,SE);figure,imsho
5、;运行结果如下:同理可得X轴方向的车牌区域:两者结合可提取出完整的车牌区域:7.3.3车牌图像灰度化由于车牌底色跟上面的字符的颜色对比度很大,所以将RGB图像转化为灰度图时,车牌底色跟字符的灰度值也会相差很大,这样就可以很明显的显现出车牌区域,便于后续处理。本系统使用的是MATLAB内的灰度图转换函数rgb2gray(),其图像灰度值计算公式为:G=0.299R+0.578G+0.114B;程序源代码为:bw=rgb2gray(I);figure(6),imshow(bw);title(‘灰度图像’);运行结果为:7.3.4车牌倾斜校正由于摄像头拍摄角度的不同,可能使拍
6、摄的车牌图片也发生倾斜,为了图像的后续处理以及很好的去识别字符,需对提取的带有倾斜的车牌图像进行校正。本系统采用的办法是,首先用radon算法进行倾斜角度计算,然后根据倾斜角对图片精选修正,从而得到水平方向一致的图片,利于后期的分割识别。代码如下:I=edge(I);%theta=1:180;[R,xp]=radon(I,theta);[I,J]=find(R>=max(max(R)));%bw=imrotate(bw,qingxiejiao,'bilinear','crop');figure,imshow(bw);title('车牌倾斜');运行结果如下:7.3.5车
7、牌图像处理对车牌灰度图像的处理主要有二值化、腐蚀、去除干扰、膨胀、擦除、取反,都可以直接使用图像工具箱的图像处理函数。经过以上处理过程后可以得到带边框的白底黑字的车牌图片,但是由于还存在车牌的边框,需要对其进行二次的裁剪,裁剪方法跟上面阐述的提取彩色车牌方法相似,先将图片水平垂直投影,然后统计黑色像素点,找到字符边缘进行裁剪,得到除去边框的白底黑字的车牌照。代码如下:SE=ones(3,3);bw=im2bw(bw);figure,imshow(bw);title('二值化');bw=imerode(bw,SE);figure,imsho
此文档下载收益归作者所有