车牌识别的matlab程序(程序-讲解-模板)

合集下载

(完整版)基于matlab的车牌识别(含子程序)

(完整版)基于matlab的车牌识别(含子程序)

基于matlab的车牌识别系统一、对车辆图像进行预处理1.载入车牌图像:function [d]=main(jpg)[filename, pathname] = uigetfile({'*.jpg', 'JPEG 文件(*.jpg)'});if(filename == 0), return, endglobal FILENAME %定义全局变量FILENAME = [pathname filename];I=imread(FILENAME);figure(1),imshow(I);title('原图像');%将车牌的原图显示出来结果如下:2.将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title('灰度图像');figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');%绘制灰度图的直方图结果如下所示:3. 用roberts算子进行边缘检测:I2=edge(I1,'roberts',0.18,'both');%选择阈值0.18,用roberts算子进行边缘检测figure(3),imshow(I2);title('roberts 算子边缘检测图像');结果如下:4.图像实施腐蚀操作:se=[1;1;1];I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title('腐蚀后图像');5.平滑图像se=strel('rectangle',[25,25]);%构造结构元素以正方形构造一个seI4=imclose(I3,se);% 图像聚类、填充图像figure(5),imshow(I4);title('平滑图像');结果如下所示:6. 删除二值图像的小对象I5=bwareaopen(I4,2000);% 去除聚团灰度值小于2000的部分figure(6),imshow(I5);title('从对象中移除小的对象');结果如下所示:二、车牌定位[y,x,z]=size(I5);%返回I5各维的尺寸,存储在x,y,z中myI=double(I5);%将I5转换成双精度tic %tic表示计时的开始,toc表示计时的结束Blue_y=zeros(y,1);%产生一个y*1的零阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI的图像中坐标为(i,j)的点值为1,即该点为车牌背景颜色蓝色 %则Blue_y(i,1)的值加1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定%temp为向量white_y的元素中的最大值,MaxY为该值的索引PY1=MaxY;while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);%x方向车牌区域确定%%%%%% X方向 %%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)= Blue_x(1,j)+1; endendendPX1=1;while ((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域');%行方向车牌区域确定figure(7),subplot(1,2,2),imshow(dw),title('定位裁剪后的车牌彩色图像');的车牌区域如下所示:三、字符分割及处理1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。

如何使用Matlab技术进行车牌识别

如何使用Matlab技术进行车牌识别

如何使用Matlab技术进行车牌识别车牌识别技术是一种在现代交通管理、安保等领域应用广泛的技术。

通过使用Matlab软件,我们可以轻松实现车牌识别功能。

本文将介绍如何使用Matlab技术进行车牌识别。

一、图像预处理在进行车牌识别之前,首先需要对图像进行预处理。

图像预处理的目的是提取车牌信息并减小噪声干扰。

在Matlab中,我们可以使用一系列图像处理函数来实现图像预处理,包括图像二值化、边缘检测、形态学操作等。

这些函数可以帮助我们提取车牌轮廓,并去除背景和噪声。

二、车牌定位车牌定位是车牌识别的关键步骤之一。

通过车牌定位,我们可以找到图像中的车牌区域,并将其与其他区域进行区分。

在Matlab中,可以使用图像分割、形态学滤波等技术来实现车牌定位。

这些技术可以帮助我们提取车牌的形状、颜色和纹理等特征,并将其与其他区域进行区分。

三、字符分割一旦我们成功地定位了车牌区域,就需要将车牌中的字符进行分割。

字符分割是车牌识别中的一个重要环节。

通过将车牌中的字符进行分割,我们可以得到单个字符的图像,为后续的字符识别做准备。

在Matlab中,可以使用一系列图像处理函数来实现字符分割,包括边缘检测、连通性分析和投影分析等。

这些函数可以帮助我们将车牌中的字符与其他区域进行分离。

四、字符识别字符识别是车牌识别的核心任务。

通过对字符进行识别,我们可以得到车牌中的文本信息。

在Matlab中,可以使用模式识别、神经网络或者深度学习等技术来实现字符识别。

这些技术可以帮助我们训练一个分类器,将字符图像与对应的字符进行匹配。

通过匹配算法,我们可以得到车牌的文本信息。

五、车牌识别结果展示在进行车牌识别之后,我们可以将识别结果进行展示。

通过将识别结果与原始图像进行对比,我们可以验证车牌识别的准确性。

在Matlab中,可以使用图像绘制函数和文本显示函数来实现车牌识别结果的展示。

通过这些函数,我们可以在原始图像中标注出识别结果,并将结果显示在图像上。

实验报告用MATLAB实现车牌识别系统

实验报告用MATLAB实现车牌识别系统

图像处理大作业实验报告--用MATLAB实现车牌识别系统作者东南大学电子系李浩翔06006435指导老师张雄实验日期2010-1-10索引:实验目的实验原理实验步骤1.预处理2.边缘识别3.小区块联通4.车牌区域的识别并截取5.字符截取6.字符识别实验思路分析本程序的局限性附录附录1 程序源代码1.主程序2.子函数(code)附录2 测试图像处理过程汇总1.测试图像12.测试图像2附录3 参考文献及参考程序实验目的(返回索引)使用MATLAB对包含车牌的图片进行处理,利用算法识别出车牌所在的区域,并辨认其数字及字母,最后在屏幕上输出所识别出的车牌号。

实验原理(返回索引)1.将拍摄下的彩色图像转换为灰度图,之后用中值滤波对灰度图像进行预处理,从而减少干扰信息。

2.使用sobel算子识别出图像的边缘,并转化为二值化图像。

并对二值化之后的图像进行卷积,加强边缘的轮廓。

3.用膨胀-再腐蚀的方法分别作用于图像的横轴与纵轴,将小块的联通区域连接起来,使车牌的形状更加清晰,为下一步的识别做好准备。

4.利用车牌长宽比的特性对各个联通区域进行判断,识别出车牌所在区域,并截取。

5.对截取出的车牌区域进行进一步的处理,分割出各个字符。

6.对分割出的字符进行特征判断,从而识别出具体的车牌号。

实验步骤(返回索引)1.预处理(返回索引)A. 将拍摄下的彩色图像转换为灰度图,便于进行接下来的算法处理。

图1 拍摄下的图片B.对灰度图进行中值滤波,减少干扰点对二值化运算结果的影响。

图3 进行中值滤波后的灰度图C.将中值滤波后的灰度图用设定门限灰度的方法(取门限值为0.2)转化为二值化图像,在后继的车牌区域截取运算中作为源图像使用。

图4 使用设定灰度门限的方法获得的二值化图像2.边缘识别(返回索引)A.利用sobel算子识别出图3中的边缘区域,并将其转换为二值化图像。

在转换后的二值化图像中,边缘区域被作为白点标出,而非边缘区域被黑色区域覆盖。

matlab车牌识别课程设计报告

matlab车牌识别课程设计报告

Matlab程序设计任务书目录一.课程设计目的 (3)二.设计原理 (3)三.详细设计步骤 (3)四. 设计结果及分析 (18)五. 总结 (19)六. 设计体会 (20)七. 参考文献 (21)一、课程设计目的车牌定位系统的目的在于正确获取整个图像中车牌的区域,并识别出车牌号。

通过设计实现车牌识别系统,能够提高学生分析问题和解决问题的能力,还能培养一定的科研能力。

二、设计原理:牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。

其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。

某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。

一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。

当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。

牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。

三、详细设计步骤:v1.0 可编辑可修改1. 提出总体设计方案:牌照号码、颜色识别为了进行牌照识别,需要以下几个基本的步骤: a.牌照定位,定位图片中的牌照位置; b.牌照字符分割,把牌照中的字符分割出来;c.牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。

牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。

(1)牌照定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。

首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。

流程图:(2)牌照字符分割 :导入原始图像图像预处理增强效果图像边缘提取车牌定位 对图像开闭运算完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。

(完整版)MATLAB车牌识别

(完整版)MATLAB车牌识别

目录1.引言 (2)2.设计概述 (3)2.1车牌识别技术 (3)2.2 车牌识别技术的发展 (3)2.3 车牌识别技术的国内外研究现状 (4)2.4 主要应用领域 (6)3.设计方案 (7)4.车牌识别系统的matlab实现 (8)4.1 图像的读取 (8)4.2 图像预处理 (9)4.2.1灰度变换 (9)4.2.2 图像校正 (10)4.3 牌照分割 (10)4.3.1 图像边缘提取及二值化 (11)4.3.2 BP神经网络 (14)4.4 车牌提取 (15)5.设计结果及分析 (16)5.1程序运行结果 (16)5.2程序结果分析 (17)总结体会 (18)参考文献 (19)附录1 (20)附录2 (28)1.引言伴随着世界各国车辆数量的增加,城市交通状况日益受到人们的重视。

如何有效地进行交通管理,越来越成为各国政府的相关部门所关注的焦点。

针对这一问题,人们运行先进的信息处理技术、导航定位技术、无线通信技术、自动控制技术、图像处理和识别技术及计算机网络技术等科学技术,相继研发了各种交通道路监视管理系统、车辆控制系统及公共交通系统。

这些系统将车辆和道路综合起来进行考虑,运行各种先进的技术解决道路交通的问题,统称为智能交通系统( Intelligent Transportation System,简称ITS)。

ITS 是20世纪90年代兴起的新一代交通运输系统。

它可以加强道路、车辆、驾驶员和管理人员的联系,实现道路交通管理自动化和车辆行驶的智能化,增强交通安全,减少交通堵塞,提高运输效率,减少环境污染,节约能源,提高经济活力。

智能交通系统以车辆的自动检测作为信息的来源,因而对车牌照等相关信息的自动采集和处理的一门新的交通信息获取技术——车牌识别(License Plate Recognition ,LPR) 技术逐渐发展起来,成为信息处理技术的一项重要研究课题。

车牌自动识别是智能交通管理系统中的关键技术之一。

车牌识别的matlab程序的难点与解决方法(一)

车牌识别的matlab程序的难点与解决方法(一)

车牌识别的matlab程序的难点与解决方法(一)车牌识别的matlab程序的难点与解决引言车牌识别是图像处理领域的一个重要应用,它可以在不同场景下自动识别和提取车辆的车牌信息。

在实际应用中,针对车牌识别的matlab程序存在着一些难点,本文将详细介绍这些难点及相应的解决方法,以帮助资深的创作者更好地实现车牌识别程序。

难点一:车牌识别算法选择子标题一:基于颜色特征的车牌识别算法•难点:车牌颜色在不同光照条件下会发生变化,导致识别算法的准确性下降。

•解决方法:采用颜色空间的变换(例如RGB到HSV),通过调整阈值和颜色范围,去除非车牌区域的干扰。

子标题二:基于边缘检测的车牌识别算法•难点:车牌边缘与周围物体边缘相似,容易造成误判。

•解决方法:利用形态学操作(如膨胀和腐蚀)来实现边缘闭合,并通过设定合适的阈值对边缘进行提取,降低误判概率。

子标题三:基于字符分割的车牌识别算法•难点:字符之间存在粘连和重叠情况,增加了字符分割的难度。

•解决方法:基于连通区域分析的方法,通过计算字符之间的间距和像素个数,对重叠和粘连的字符进行分割。

难点二:噪声影响的处理子标题一:图像预处理•难点:采集到的车牌图像可能存在噪声和模糊问题。

•解决方法:使用图像增强算法(如直方图均衡化和高斯滤波)对车牌图像进行预处理,提高图像的质量。

子标题二:光照不均匀的情况•难点:车牌图像在不同光照条件下会出现明暗不均的问题。

•解决方法:使用自适应阈值化算法,根据图像局部区域的光照情况对图像进行二值化处理,提高车牌识别的准确性。

难点三:多样化的车牌样式和字体子标题一:车牌样式的差异•难点:不同地区和不同国家的车牌样式存在差异,增加了车牌识别的难度。

•解决方法:基于模板匹配的方法,通过建立车牌模板库,对不同样式的车牌进行匹配比对,提高识别的准确性。

子标题二:字体的多样性•难点:不同车牌使用的字体风格各不相同。

•解决方法:使用字符特征提取算法,通过对字符轮廓和特征点的统计分析,识别不同字体的字符。

车牌识别matlab程序1

车牌识别matlab程序1

[, pathname] = uigetfile({'*.jpg', 'JPEG文件(*.jpg)';'*.bmp','BMP文件(*.bmp)';});if( == 0), return, endglobal %声明全局变量= [pathname ];I=imread();imshow(I); %显示图像II1=rgb2gray(I);%RGB图转化为灰度图figure,imshow(I1);w1=medfilt2(I1);figure,imshow(w1);s1=histeq(w1,256);figure,imshow(s1);t1=imadjust(s1);figure,imshow(t1);I2=edge(t1,'robert',0.15,'both'); %用ROBERT算子提取图像边缘figure,imshow(I2);se=[1;1;1];I3=imerode(I2,se); %弱化二进制图像I2的边缘figure,imshow(I3);%为定位车牌,将白色区域膨胀,腐蚀去无关的小物件,包括车牌字符(下面两句)se=strel('rectangle',[25,20]); %用来腐蚀的形状为矩形,面积20*25I4=imclose(I3,se);figure,imshow(I4);I5=bwareaopen(I4,2000); %去除图像中面积过小的,可以肯定不是车牌的区域。

figure,imshow(I5);[y,x,z]=size(I5); %z=1。

y,x分别为I5图像的高和宽myI=double(I5)%myI=I5;tic%begin横向扫描white_y=zeros(y,1); %white_y为y行1列的零矩阵for i=1:yfor j=1:xif(myI(i,j,1)==1)%如果myI(i,j,1)即myI图像中坐标为(i,j)的点为白色%则white_y的相应行的元素white_y(i,1)值加1white_y(i,1)= white_y(i,1)+1;endendend[temp MaxY]=max(white_y); %temp为向量white_y的元素中的最大值,MaxY为该值的索引(在向量中的位置)PY1=MaxY;while ((white_y(PY1,1)>=80)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while ((white_y(PY2,1)>=80)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:); %IY为原始图像I中截取的纵坐标在PY1:PY2之间的部分%end横向扫描%begin纵向扫描white_x=zeros(1,x);for j=1:xfor i=PY1:PY2if(myI(i,j,1)==1)white_x(1,j)= white_x(1,j)+1;endendendPX1=1;while ((white_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while ((white_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;end%end纵向扫描PX1=PX1-2;PX2=PX2+2;Plate=I(PY1:PY2,:);t=tocfigure,plot(white_y);gridfigure,plot(white_x);gridfigure,imshow(IY);figure,imshow(Plate);% if isrgd(Plate);Plate3=rgb2gray(Plate);%else% Plate2=Plate;%endplate4=medfilt2(Plate3);plate5=histeq(plate4,256);Plate2=imadjust(plate5);g_max=double(max(max(Plate2))); g_min=double(min(min(Plate2)));t=round(g_max-(g_max-g_min)/2); [m,n]=size(Plate2);Plate2=im2bw(Plate2,t/256); figure,imshow(Plate2);plate=bwareaopen(Plate2,20); figure,imshow(plate);[y1,x1,z1]=size(plate);plate1=double(plate);% tt=1;Y1=zeros(y1,1);for i=1:y1for j=1:x1if(plate1(i,j,1)==1)Y1(i,1)=Y1(i,1)+1;endendendpy1=1;py0=1;while((Y1(py0,1)<20)&&(py0<y1)) py0=py0+1;endpy1=py0;while((Y1(py1,1)>=20)&&(py1<y1)) py1=py1+1;endplate=plate(py0:py1,:,:);figure,imshow(plate);X1=zeros(1,x1);for j=1:x1for i=1:y1if(plate1(i,j,1)==1)X1(1,j)=X1(1,j)+1;endendendfigureplot(0:x1-1,X1)px0=1;px1=1;for i=1:7while((X1(1,px0)<3)&&(px0<x1))px0=px0+1;endpx1=px0;while(((X1(1,px1)>=3)&&(px1<x1))||((px1-px0)<10)) px1=px1+1;endZ=plate(:,px0:px1,:);switch strcat('Z',num2str(i))case 'Z1'PIN0=Z;case 'Z2'PIN1=Z;case 'Z3'PIN2=Z;case 'Z4'PIN3=Z;case 'Z5'PIN4=Z;case 'Z6'PIN5=Z;otherwisePIN6=Z;endfigure% subplot(1,7,i);imshow(Z);px0=px1;end。

车牌识别的matlab程序-(详细注释,并有使用注意点)

车牌识别的matlab程序-(详细注释,并有使用注意点)

附录车牌识别程序clear ;close all;%Step1 获取图像装入待处理彩色图像并显示原始图像Scolor = imread('3.jpg');%imread函数读取图像文件%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Scolor),title('原始彩色图像');%figure命令同时显示两幅图figure,imshow(Sgray),title('原始黑白图像');%Step2 图像预处理对Sgray 原始黑白图像进行开操作得到图像背景s=strel('disk',13);%strel函数Bgray=imopen(Sgray,s);%打开sgray s图像figure,imshow(Bgray);title('背景图像');%输出背景图像%用原始图像与背景图像作减法,增强图像Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像%Step3 取得最佳阈值,将图像二值化fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值bw22=im2bw(Egray,level);%转换图像为二进制图像bw2=double(bw22);%Step4 对得到二值图像作开闭操作进行滤波figure,imshow(bw2);title('图像二值化');%得到二值图像grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界figure,imshow(grd);title('图像边缘提取');%输出图像边缘bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的闭运算figure,imshow(bg1);title('图像闭运算[5,19]');%输出闭运算的图像bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算figure,imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像bg2=imopen(bg3,strel('rectangle',[19,1]));%取矩形框的开运算figure,imshow(bg2);title('图像开运算[19,1]');%输出开运算的图像%Step5 对二值图像进行区域提取,并计算区域特征参数。

基于Matlab的车牌识别(论文)

基于Matlab的车牌识别(论文)

基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。

本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。

并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。

一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。

车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。

其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。

某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。

一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。

当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。

车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。

二、设计步骤总体步骤为:车辆→图像采集→图像预处理→车牌定位→字符分割→字符定位→输出结果基本的步骤:a.车牌定位,定位图片中的车牌位置;b.车牌字符分割,把车牌中的字符分割出来;c.车牌字符识别,把分割好的字符进行识别,最终组成车牌号码。

车牌识别过程中,车牌颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车牌识别互相配合、互相验证。

(1)车牌定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。

首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。

基于MATLAB图像处理的汽车牌照识别系统

基于MATLAB图像处理的汽车牌照识别系统

基于MATLAB 图像处理的汽车牌照识别系统仇成群(盐城师范学院,江苏盐城224002)汽车牌照识别系统是建设智能交通系统不可或缺的部分。

基于MATLAB 图像处理的汽车牌照识别系统是通过引入数字摄像技术和计算机信息管理技术,采用先进的图像处理、模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理程度。

车牌识别系统整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB 软件编程来实现每一个部分处理工程,最后识别出汽车牌照[1-4]。

1MATLAB 及其图像处理工具概述MATLAB 是MATrix LABoratory (矩阵实验室)的缩写,是Math Works 公司开发的一种功能强、效率高、简单易学的数学软件。

MATLAB 的图像处理工具箱,功能十分强大,支持的图像文件格式丰富,如*.BMP 、*.JPG 、*.JPEG 、*.GIF 、*.TIF 、*.TIFF 、*.PNG 、*.PCX 、*.XWD 、*.HDF 、*.ICO 、*.CUR 等。

MATLAB 7.1提供了20多类图像处理函数,几乎涵盖了图像处理的所有技术方法,是学习和研究图像处理的人员难得的宝贵资料和加工工具箱。

这些函数按其功能可分为:图像显示、图像文件I/O 、图像算术运算、几何变换、图像登记、像素值与统计、图像分析、图像增强、线性滤波、线性二元滤波设计、图像去模糊、图像变换、邻域与块处理、灰度与二值图像的形态学运算、基于边缘的处理、色彩映射表操作、色彩空间变换、图像类型与类型转换。

MATLAB 还着重在图形用户界面(GUI )的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

本文将给出MATLAB 的图像处理工具箱中的图像处理函数实现图像处理与分析的应用技术实例。

2基于MATLAB 图像处理的汽车牌照识别系统2.1系统组成基于MATLAB 图像处理的汽车牌照识别系统主要包括车牌定位、字符车牌分割和车牌字符识别三个关键环节。

基于MATLAB的车牌识别系统研究

基于MATLAB的车牌识别系统研究

基于MATLAB的车牌识别系统探究摘要:随着交通的快速进步和车辆数量的增加,车牌识别系统在车辆管理和交通安全方面扮演着重要角色。

本文基于MATLAB平台,探究和设计了一种车牌识别系统,包括车牌图像的得到、预处理、特征提取和识别等关键技术。

试验结果表明,该系统可以有效地检测和识别车牌图像,并具有较高的识别准确率。

1. 引言车牌作为车辆唯一的标识符,在交通管理和公共安全中具有重要意义。

传统的车牌识别方式主要依靠人工进行,效率低下且容易出错。

近年来,随着计算机视觉和模式识别等技术的进步,基于计算机的车牌识别系统得到广泛应用。

本文旨在探究和设计一种基于MATLAB的车牌识别系统,以提高车辆管理和交通安全的效率和准确性。

2. 方法2.1 车牌图像的得到车牌图像的得到是车牌识别系统的第一步,可以通过摄像头或已有的车牌图像数据库进行得到。

本文使用摄像头采集车辆图像,并对图像进行预处理。

2.2 图像预处理图像预处理是车牌识别的基础,目标是消除图像中的噪声和干扰,提高图像的质量。

本文接受灰度化、二值化、去噪等方法对图像进行预处理。

2.3 特征提取特征提取是车牌识别系统的核心技术之一,依据车牌图像的特点提取有效的特征信息。

本文接受图像分割、轮廓提取和统计特征等方法进行特征提取。

2.4 车牌识别车牌识别是车牌识别系统的最终目标,通过对特征进行分类和匹配来实现对车牌的识别。

本文接受模式识别算法和机器进修方法进行车牌识别,并通过试验验证其准确性和可靠性。

3. 试验与结果本文基于MATLAB平台进行试验,接受了大量的车牌图像进行测试和验证。

试验结果表明,所设计的车牌识别系统在车牌图像的得到、预处理、特征提取和识别等方面具有较高的准确性和效率。

识别率达到了90%,满足了车辆管理和交通安全的需求。

4. 谈论与分析通过对试验结果的分析和对比,可以发现该系统在车牌识别的准确性和效率方面相对较好。

然而,该系统还存在一些问题和不足之处,如对光照和遮挡的敏感性,对多种车牌样式的识别能力等。

车牌识别的matlab程序(程序-讲解-模板)

车牌识别的matlab程序(程序-讲解-模板)

clcclearclose allI=imread('chepai.jpg');subplot(3,2,1);imshow(I), title('原始图像');I_gray=rgb2gray(I);subplot(3,2,2),imshow(I_gray),title('灰度图像');%====================== 形态学预处理======================I_edge=edge(I_gray,'sobel');subplot(3,2,3),imshow(I_edge),title('边缘检测后图像');se=[1;1;1];I_erode=imerode(I_edge,se);subplot(3,2,4),imshow(I_erode),title('腐蚀后边缘图像');se=strel('rectangle',[25,25]);I_close=imclose(I_erode,se); %图像闭合、填充图像subplot(3,2,5),imshow(I_close),title('填充后图像');I_final=bwareaopen(I_close,2000); %去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I_final),title('形态滤波后图像');%========================== 车牌分割============================= I_new=zeros(size(I_final,1),size(I_final,2));location_of_1=[];for i=1:size(I_final,1) %寻找二值图像中白的点的位置for j=1:size(I_final,2)if I_final(i,j)==1;newlocation=[i,j];location_of_1=[location_of_1;newlocation];endendendmini=inf;maxi=0;for i=1:size(location_of_1,1)%寻找所有白点中,x坐标与y坐标的和最大,最小的两个点的位置temp=location_of_1(i,1)+location_of_1(i,2);if temp<minimini=temp;a=i;endif temp>maximaxi=temp;b=i;endendfirst_point=location_of_1(a,:); %和最小的点为车牌的左上角last_point=location_of_1(b,:); %和最大的点为车牌的右下角x1=first_point(1)+4; %坐标值修正x2=last_point(1)-4;y1=first_point(2)+4;y2=last_point(2)-4;I_plate=I(x1:x2,y1:y2);I_plate=OTSU(I_plate); %以OTSU算法对分割出的车牌进行自适应二值化处理I_plate=bwareaopen(I_plate,50);figure,imshow(I_plate),title('车牌提取') %画出最终车牌%========================= 字符分割============================X=[]; %用来存放水平分割线的横坐标flag=0;for j=1:size(I_plate,2)sum_y=sum(I_plate(:,j));if logical(sum_y)~=flag %列和有变化时,记录下此列X=[X j];flag=logical(sum_y);endendfigurefor n=1:7char=I_plate(:,X(2*n-1):X(2*n)-1); %进行粗分割for i=1:size(char,1) %这两个for循环对分割字符的上下进行裁剪if sum(char(i,:))~=0top=i;breakendendfor i=1:size(char,1)if sum(char(size(char,1)-i,:))~=0bottom=size(char,1)-i;breakendendchar=char(top:bottom,:);subplot(2,4,n);imshow(char);char=imresize(char,[32,16],'nearest'); %归一化为32*16的大小,以便模板匹配eval(strcat('Char_',num2str(n),'=char;')); %将分割的字符放入Char_i中end%========================== 字符识别============================= char=[];store1=strcat('京','津','沪','渝','冀','晋','辽','吉','黑','苏','浙'... %汉字识别,'皖','闽','赣','鲁','豫','鄂','湘','粤','琼','川','贵','云','陕'...,'甘','青','藏','桂','皖','新','宁','港','鲁','蒙');for j=1:34Im=Char_1;Template=imread(strcat('chinese\',num2str(j),'.bmp')); %chinese文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store1(index)];store2=strcat('A','B','C','D','E','F','G','H','J','K','L','M','M','N','P','Q','R'...,'S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9');for i=2:7 %字母数字识别for j=1:35Im=eval(strcat('Char_',num2str(i)));Template=imread(strcat('cha&num\',num2str(j),'.bmp')); %cha&num文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store2(index)];endfigure,imshow(I),title(strcat('车牌为:',char))信研-11 XX 2011301XXXXXX模式识别作业—车牌识别1、作业要求:要求:任给一幅符合假定的图片,自动识别出车牌号。

基于Matlab的车牌识别系统

基于Matlab的车牌识别系统

一、摘要随着公路逐渐普及,我国的公路交通事业发展迅速,所以人工管理方式已经不能满着实际的需要,微电子、通信和计算机技术在交通领域的应用极大地提高了交通管理效率。

汽车牌照的自动识别技术已经得到了广泛应用。

汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。

用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。

在研究的同时对其中出现的问题进行了具体分析,处理。

二、课程设计的任务和目的任务:使用MATLAB对包含车牌的图片进行处理,利用算法识别出车牌所在的区域,并辨认其数字及字母,最后在屏幕上输出所识别出的车牌号。

目的:1、让自己巩固理论课上所学的知识,理论联系实践。

2、锻炼自己的动手能力,激发自己的研究潜能,提高我们的协作精神。

三、设计原理由于车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别正确率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并且要求满足实时性要求。

图1 牌照识别系统原理图该系统是计算机图像处理与字符识别技术在智能化交通管理系统中的应用,它主要由牌照图像的采集和预处理、牌照区域的定位和提取、牌照字符的分割和识别等几个部分组成,如图1 所示。

其基本工作过程如下:(1)当行驶的车辆经过时,触发埋设在固定位置的传感器,系统被唤醒处于工作状态;一旦连接摄像头光快门的光电传感器被触发,设置在车辆前方、后方和侧面的相机同时拍摄下车辆图像;(2)由摄像机或CCD 摄像头拍摄的含有车辆牌照的图像通视频卡输入计算机进行预处理,图像预处理包括图像转换、图像增强、滤波和水平较正等;(3)由检索模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;(4)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别系统进行识别。

车牌识别matlab代码

车牌识别matlab代码

close allclc[fn,pn,fi]=uigetfile('ChePaiKu\*.jpg','选择图片');YuanShi=imread([pn fn]);%输入原始图像figure(1);subplot(3,2,1),imshow(YuanShi),title('原始图像');%%%%%%%%%%1、图像预处理%%%%%%%%%%%YuanShiHuiDu=rgb2gray(YuanShi);%转化为灰度图像subplot(3,2,2),imshow(YuanShiHuiDu),title('灰度图像');BianYuan=edge(YuanShiHuiDu,'robert',0.09,'both');%Robert算子边缘检测subplot(3,2,3),imshow(BianYuan),title('Robert算子边缘检测后图像');se1=[1;1;1]; %线型结构元素FuShi=imerode(BianYuan,se1); %腐蚀图像subplot(3,2,4),imshow(FuShi),title('腐蚀后边缘图像');se2=strel('rectangle',[30,30]); %矩形结构元素TianChong=imclose(FuShi,se2);%图像聚类、填充图像subplot(3,2,5),imshow(TianChong),title('填充后图像');YuanShiLvBo=bwareaopen(TianChong,2000);%从对象中移除面积小于2000的小对象figure(2);subplot(2,2,1),imshow(YuanShiLvBo),title('形态滤波后图像');%%%%%%%%%%2、车牌定位%%%%%%%%%%%[y,x]=size(YuanShiLvBo);%size函数将数组的行数返回到第一个输出变量,将数组的列数返回到第二个输出变量YuCuDingWei=double(YuanShiLvBo);%%%%%%%%%%2.1、车牌粗定位之一确定行的起始位置和终止位置%%%%%%%%%%%Y1=zeros(y,1);%产生y行1列全零数组for i=1:yfor j=1:xif(YuCuDingWei(i,j)==1)Y1(i,1)= Y1(i,1)+1;%白色像素点统计endendend[temp,MaxY]=max(Y1);%Y方向车牌区域确定。

数字图像处理车牌识别课程设计matlab实现附源代码

数字图像处理车牌识别课程设计matlab实现附源代码

精品实验项目字符识别预处理的设计与实现专业:电子信息工程*名:**学号:**********指导老师:***目录一、实验类型:设计性实验 (3)二、实验目的 (3)三、实验设备:扫描仪、安装有MATLAB软件的计算机 (3)四、实验内容及原理 (3)(1)字符图像的获取 (3)(2)字符图像预处理 (3)(3)字符图像分割 (3)(4)函数的作用 (4)五、实验步骤 (8)1.载入车牌图像: (8)2.将彩图转换为灰度图并绘制直方图: (9)3. 用roberts算子进行边缘检测: (10)4.图像实施腐蚀操作: (10)5.平滑图像 (11)6. 删除二值图像的小对象 (12)7.车牌定位 (12)8.字符分割与识别 (14)9.车牌识别: (20)六、思考题 (27)一、实验类型:设计性实验二、实验目的1. 掌握图像的获取、预处理和分割的原理及MATLAB实现方法。

2. 掌握使用扫描仪和计算机获取数字图像的方法,理解扫描仪的原理。

3. 自学一种字符图像的分割算法并用MA TLAB编程实现该算法。

三、实验设备:扫描仪、安装有MATLAB软件的计算机四、实验内容及原理(1)字符图像的获取用扫描仪获取图像是字符图像处理常用的数字化过程的方法之一。

以办公设备中常用的台式扫描仪为例,其主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等,这些指标都可以从扫描仪的说明手册中获得。

分辨率的单位是dpi(Dot Per Inch),意思是每英寸的像素点数。

扫描仪工作时,首先由可移动带状光源将光线照在欲输入的图稿上,并沿y方向扫描稿件,产生表示图像特征的反射光或透射光。

照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,经光学系统采集和过滤成RGB三色光带分别照射到RGB分量的CCD上,CCD将光信号转换为模拟电信号。

内部电路的A/D变换器将模拟电信号转变为数字电子信号输送给计算机。

基于MATLAB平台下的车牌识别系统设计

基于MATLAB平台下的车牌识别系统设计

3、实验改进
3、实验改进
根据实验结果,我们发现车牌定位和字符分割模块是影响系统性能的关键因 素。因此,我们计划从以下两个方面进行改进:
3、实验改进
1、针对车牌定位模块,尝试引入更多的特征提取方法,以便更准确地定位车 牌区域;
2、针对字符分割模块,研究更为稳健的连通域分析方法,减少误分割和漏分 割。
三、实验结果与分析
1、实验设置
1、实验设置
为了评估车牌识别系统的性能,我们构建了一个包含200张车牌图像的数据集, 其中包含了不同的光照条件、车牌位置和尺寸。评估指标主要包括准确率、召回 率和运行时间。
2、实验结果分析
2、实验结果分析
经过大量实验,我们得到了以下结果: 1、车牌定位模块的准确率为95%,召回率为90%;
1、需求分析
3、适应性:系统应能适应不同的环境条件,包括不同的光照条件、车牌位置 和车牌尺寸等;
1、需求分析
4、可靠性:系统应具备一定的可靠性,能够稳定运行,保证识别结果的准确 性。
2、总体设计
2、总体设计
在总体设计阶段,我们将车牌识别系统分解为以下几个模块: 1、车牌定位模块:该模块主要负责寻找并定位车牌区域,排除其他干扰因素;
基于MATLAB平台下的车牌识别 系统设计
01 一、引言
目录
02
二、车牌识别系统设 计
03 三、实验结果与分析
04 四、结论与展望
05 参考内容
一、引言
一、引言
随着社会的快速发展和科技的不断进步,智能化交通管理成为了研究的热点。 车牌识别系统作为智能化交通管理的重要组成部分,能够自动识别车辆身份,提 高交通监管能力和服务质量。本次演示将基于MATLAB平台,设计一套车牌识别系 统,旨在提高车牌识别的准确性和效率,为智能交通管理提供有力支持。

-基于matlab的车牌识别系统的设计(附程序+详解注释)

-基于matlab的车牌识别系统的设计(附程序+详解注释)

焦作大学毕业设计(论文)说明书作者:学号:学院(系):信息工程学院专业:通信技术题目:基于matlab的车牌识别系统的设计主题:指导教师:职称:讲师2012年12月摘要汽车车牌的识别系统是现代智能交通管理的重要组成部分之一。

车牌识别系统使车辆管理更智能化,数字化,有效的提升了交通管理的方便性和有效性。

车牌识别系统主要包括了图像采集、图像预处理、车牌定位、字符分割、字符识别等五大核心部分。

本文主要介绍图像预处理、车牌定位、字符分割三个模块的实现方法。

本文的图像预处理模块是将图像灰度化和用Roberts算子进行边缘检测的步骤。

车牌定位和分割采用的是利用数学形态法来确定车牌位置,再利用车牌彩色信息的彩色分割法来完成车牌部位分割。

字符的分割采用的方法是以二值化后的车牌部分进行垂直投影,然后在对垂直投影进行扫描,从而完成字符的分割。

本文即是针对其核心部分进行阐述并使用MATLAB软件环境中进行字符分割的仿真实验。

关键词:MATLAB、图像预处理、车牌定位、字符分割ABSTRACTVehicle license plate recognition system is one important of the modern intelligent traffic management. License plate recognition system to make more intelligent vehicle management, digital, Effective traffic management to enhance the convenience and effectiveness. License plate recognition system includes image acquisition, image preprocessing, license plate localization, character segmentation, character recognition and other five core parts. In this paper, preprocessing, license plate localization, character segmentation method for the realization of three modules.This is the image preprocessing module and the use of the image grayscale Roberts edge detection operator steps. License plate location and segmentation using mathematical morphology method is used to determine the license plate location,Re-use license plate color segmentation method of color information to complete the license plate area segmentation. Character segmentation approach is based on the license plate after thebinary part of the vertical projection, Then scan in the vertical projection, thus completing the character segmentation. This article is described for the core part and use the MATLAB software environment, the simulation experiments for character segmentation.Keywords: MATLAB software, image preprocessing, license plate localization, character segmentation .目录1. 绪论 (1)1.1 本课题的研究背景 (1)1.2 本课题的研究目的及意义 (2)1.3 国内外发展状况 (3)1.4 主要应用领域 (5)1.5 设计原理 (6)2. MATLAB简介 (7)2.1 MATLAB发展历史 (7)2.2 MATLAB的语言特点 (7)3.工作流程 (9)3.1 系统框架结构和工作流程 (9)4.各模块的实现 (11)4.1设计方案 (11)4.2图像预处理 (11)4.2.1图像灰度化 (11)4.2.2图像的边缘检测 (12)4.3车牌定位和分割 (14)4.3.1车牌的定位 (15)4.3.2车牌的分割 (16)4.3.3对定位后的彩色车牌的进一步处理 (17)4.4字符的分割和归一化处理 (17)4.4.1字符的分割 (18)4.4.2字符的归一化处理 (19)4.5 字符的识别 (19)5.实验结果和分析 (22)6.实验总结 (24)致谢 (25)参考文献 (26)程序附录 (27)第一章绪论1.1 本课题的研究背景现代社会已进入信息时代,随着计算机技术、通信技术和计算机网络技术的发展,自动化信息处理能力和水平不断提高,作为现代社会主要交通工具之一的汽车在人们的生产生活的各个领域得到大量使用,对他的信息进行自动采集和管理具有十分重要的意义,成为信息处理技术的一项重要研究课题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

车牌识别的matlab程序(程序-讲解-模板)clcclearclose allI=imread('chepai.jpg');subplot(3,2,1);imshow(I), title('原始图像');I_gray=rgb2gray(I);subplot(3,2,2),imshow(I_gray),title('灰度图像');%====================== 形态学预处理======================I_edge=edge(I_gray,'sobel');subplot(3,2,3),imshow(I_edge),title('边缘检测后图像');se=[1;1;1];I_erode=imerode(I_edge,se);subplot(3,2,4),imshow(I_erode),title('腐蚀后边缘图像');se=strel('rectangle',[25,25]);I_close=imclose(I_erode,se); %图像闭合、填充图像subplot(3,2,5),imshow(I_close),title('填充后图像for i=1:size(location_of_1,1)%寻找所有白点中,x坐标与y坐标的和最大,最小的两个点的位置temp=location_of_1(i,1)+location_of_1(i,2);if temp<minimini=temp;a=i;endif temp>maximaxi=temp;b=i;endendfirst_point=location_of_1(a,:); %和最小的点为车牌的左上角last_point=location_of_1(b,:); %和最大的点为车牌的右下角x1=first_point(1)+4; %坐标值修正x2=last_point(1)-4;y1=first_point(2)+4;y2=last_point(2)-4;I_plate=I(x1:x2,y1:y2);I_plate=OTSU(I_plate); %以OTSU算法对分割出的车牌进行自适应二值化处理I_plate=bwareaopen(I_plate,50);figure,imshow(I_plate),title('车牌提取') %画出最终车牌%========================= 字符分割============================X=[]; %用来存放水平分割线的横坐标flag=0;for j=1:size(I_plate,2)sum_y=sum(I_plate(:,j));if logical(sum_y)~=flag %列和有变化时,记录下此列X=[X j];flag=logical(sum_y);endfigurefor n=1:7char=I_plate(:,X(2*n-1):X(2*n)-1);%进行粗分割for i=1:size(char,1) %这两个for循环对分割字符的上下进行裁剪if sum(char(i,:))~=0top=i;breakendendfor i=1:size(char,1)if sum(char(size(char,1)-i,:))~=0bottom=size(char,1)-i;breakendendchar=char(top:bottom,:);subplot(2,4,n);imshow(char);char=imresize(char,[32,16],'nearest');%归一化为32*16的大小,以便模板匹配eval(strcat('Char_',num2str(n),'=char;')); %将分割的字符放入Char_i中end%========================== 字符识别============================= char=[];store1=strcat('京','津','沪','渝','冀','晋','辽','吉','黑','苏','浙'... %汉字识别,'皖','闽','赣','鲁','豫','鄂','湘','粤','琼','川','贵','云','陕'...,'甘','青','藏','桂','皖','新','宁','港','鲁','蒙');for j=1:34Im=Char_1;Template=imread(strcat('chinese\',num2str(j),'. bmp')); %chinese文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ))); endindex=find(Compare==(min(Compare))); char=[char store1(index)];store2=strcat('A','B','C','D','E','F','G','H','J','K' ,'L','M','M','N','P','Q','R'...,'S','T','U','V','W','X','Y','Z','0','1','2','3','4' ,'5','6','7','8','9');fori=2:7%字母数字识别for j=1:35Im=eval(strcat('Char_',num2str(i)));Template=imread(strcat('cha&num\',num2str(j) ,'.bmp')); %cha&num文件附在最后Template=im2bw(Template);Differ=Im-Template;Compare(j)=sum(sum(abs(Differ)));endindex=find(Compare==(min(Compare)));char=[char store2(index)];endfigure,imshow(I),title(strcat('车牌为:',char))信研-11 XX 2011301XXXXXX模式识别作业—车牌识别1、作业要求:要求:任给一幅符合假定的图片,自动识别出车牌号。

如:给定如下图片,自动输出(京JX9168)2、设计步骤:所设计的车牌识别的流程包括图像预处理,车牌分割,字符分割,及字符识别。

详见matalb程序。

3、程序讲解1)第一部分为图像的预处理。

此部分借鉴了别人的程序,将灰度图像以sobel算子检测边缘;再对边缘图像进行腐蚀,去除掉细的,间断的边缘;对剩下的区域进行闭合以填充图像,此时可以看到车牌区域形成了一个大的连通域;调用bwareaopen函数去掉小的连通域,此时整个二值图像只b剩下了车牌区域为1。

如下图所示:2)第二部分为车牌的提取此部分的工作为将上一步的白色区域取出,其对应的就是车牌区域。

设计思路如下:首先将二值图像f中所有为1的点的坐标放入数组location_of_1中,对这些坐标遍历计算,寻找x坐标与y坐标之和最大的点a与最小的点b,a即为车牌的左上角,b为车牌的右下角。

通过这两个坐标将车牌分割出来,并对灰度车牌图像以OTSU算法进行自适应二值化分割。

最终效果如下:3)第三部分为字符分割此部分的工作是将车牌里的7个字符分别提取出来。

方法如下:对该二值图从左向右像按列z遍历,计算每一列之和,没有白点的列和为0,有白点的列和非零,转换为逻辑1,记录下所有列和在0与1转换的列,即为需要切割的列,共有14列,可切出7个字符。

切割出单个字符后,放入char_(i)中,并切割掉每个字符的上下的空白区域,完成精确切割,效果如下:4)第四部分为字符的识别识别的方法主要有模板匹配字符识别算法,统计特征匹配算法,神经网络字符识别算法和支持向量机模式识别算法。

由于分割的字符效果较好,为明显畸变,模k板维数低(32*16),且因为时间关系,这里采用了模板匹配识别算法。

该程序把切割出的字符与库里的汉字和字符的模板做减法运算,找到差别点最少的模板为对应模板,输出该模板对应的字符,最后识别出其为“京JX9168”。

如下:Chinese模板文件:Cha&num模板文件:(将图片放入文件夹中,放在程序目录下)OTSU.m文件:function J=OTSU(I)Hi=imhist(I); %直方图sum1=sum(Hi);for i=1:255w1=sum(Hi(1:i))/sum1; %第一类概率w2=sum(Hi((i+1):256))/sum1; %第二类概率m1=(0:(i-1))*Hi(1:i)/sum(Hi(1:i)); %第一类平均灰度值m2=(i:255)*Hi((i+1):256)/sum(Hi((i+1):256));%第二类平均灰度值Jw(i)=w1*w2*(m1-m2)^2;end[maxm,thresh]=max(Jw); %寻找阈值% subplot(2,2,1);imshow(I);title('原图像');% subplot(2,2,[3,4]);imhist(I);hold on;plot(thresh,3,'+r');title((strcat('阈值为',num2str(thresh))));I(find(I<=thresh))=0;I(find(I>thresh))=256; %二值化J=I;% subplot(2,2,2),imshow(I),title('二值化图像zk');。

相关文档
最新文档