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图像处理的车牌识别系统目录摘要 (1)第一章绪论 (3)1.1研究背景及意义 (3)1.2车牌系统简介 (4)1.2.1国内外现状 (5)1.2.2车牌识别难点 (6)1.3 MATLAB的简介 (7)1.3 MATLAB语言特点 (8)第二章图像预处理 (8)2.1 图像采集 (8)2.2 图像预处理 (9)2.2.1 图像灰度化 (9)2.2.2 图像增强 (11)第三章车牌定位与分割 (12)3.1 车牌定位 (13)3.2 车牌分割 (17)3.3 车牌进一步处理 (17)第四章字符分割和归一化 (18)4.1 字符分割 (19)4.2 字符归一化 (19)4.3 字符识别 (20)第五章汽车号牌识别系统实现与分析 (22)5.1 系统实现 (22)5.2 系统分析 (25)总结 (28)参考文献 (29)致谢 (30)摘要随着二十一世纪到来,经济快速发展和人们生活水平显著提高,汽车逐渐成为家庭的主要交通工具。
汽车的产量快速增多,车辆流动也变得越来越频繁,因此给交通带来了严重问题,如交通堵塞、交通事故等,智能交通系统(Intelligent Transportation System)的产生就是为了从根本上解决交通问题。
在智能交通系统中车牌识别技术占有重要位置,车牌识别技术的推广普及必将对加强道路管理、城市交通事故、违章停车、处理车辆被盗案件、保障社会稳定等方面产生重大而深远的影响。
该设计主要研究基于MATLAB软件的汽车号牌设别系统设计,系统主要包括图像采集、图像预处理、车牌定位、字符分割、字符识别五大核心部分。
系统的图像预处理模块是将图像经过图像灰度化、图像增强、边缘提取、二值化等操作,转换成便于车牌定位的二值化图像;利用车牌的边缘、形状等特征,再结合Roberts 算子边缘检测、数字图像、形态学等技术对车牌进行定位;字符的分割采用的方法是将二值化后的车牌部分进行寻找连续有文字的块,若长度大于设定的阈值则切割,从而完成字符的分割;字符识别运用模板匹配算法完成。
如何使用Matlab技术进行车牌识别
如何使用Matlab技术进行车牌识别车牌识别技术是一种在现代交通管理、安保等领域应用广泛的技术。
通过使用Matlab软件,我们可以轻松实现车牌识别功能。
本文将介绍如何使用Matlab技术进行车牌识别。
一、图像预处理在进行车牌识别之前,首先需要对图像进行预处理。
图像预处理的目的是提取车牌信息并减小噪声干扰。
在Matlab中,我们可以使用一系列图像处理函数来实现图像预处理,包括图像二值化、边缘检测、形态学操作等。
这些函数可以帮助我们提取车牌轮廓,并去除背景和噪声。
二、车牌定位车牌定位是车牌识别的关键步骤之一。
通过车牌定位,我们可以找到图像中的车牌区域,并将其与其他区域进行区分。
在Matlab中,可以使用图像分割、形态学滤波等技术来实现车牌定位。
这些技术可以帮助我们提取车牌的形状、颜色和纹理等特征,并将其与其他区域进行区分。
三、字符分割一旦我们成功地定位了车牌区域,就需要将车牌中的字符进行分割。
字符分割是车牌识别中的一个重要环节。
通过将车牌中的字符进行分割,我们可以得到单个字符的图像,为后续的字符识别做准备。
在Matlab中,可以使用一系列图像处理函数来实现字符分割,包括边缘检测、连通性分析和投影分析等。
这些函数可以帮助我们将车牌中的字符与其他区域进行分离。
四、字符识别字符识别是车牌识别的核心任务。
通过对字符进行识别,我们可以得到车牌中的文本信息。
在Matlab中,可以使用模式识别、神经网络或者深度学习等技术来实现字符识别。
这些技术可以帮助我们训练一个分类器,将字符图像与对应的字符进行匹配。
通过匹配算法,我们可以得到车牌的文本信息。
五、车牌识别结果展示在进行车牌识别之后,我们可以将识别结果进行展示。
通过将识别结果与原始图像进行对比,我们可以验证车牌识别的准确性。
在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的车牌识别系统的源代码(可以实现)
k=input('Enter the file name:','s');%输入车牌照片im=imread(k);imshow(im);im_gray=rgb2gray(im);im_gray=medfilt2(im_gray,[3,3]);%对图像进行中值滤波Image=im2bw(im_gray,0.2);BW=edge(im_gray,'sobel');%找出图像边缘[imx,imy]=size(BW);%计算图像大小msk=[0 0 0 0 0;0 1 1 1 0;0 1 1 1 0;0 1 1 1 0;0 0 0 0 0;];B0=conv2(double(BW),double(msk));%对边缘区域进行加强se=ones(2,80);B1=imdilate(B0,se);%figure;%imshow(B1);B2=imerode(B1,se);%figure;%imshow(B2);se=ones(20,2);B3=imdilate(B2,se);%figure;imshow(B3);B4=imerode(B3,se);%figure;imshow(B4);se=ones(50,2);B5=imdilate(B4,se);%figure;imshow(B5);B6=imerode(B5,se);%figure;imshow(B6);%对边界图进行小区域连通,使车牌区域连通为一个方块[B,L]=bwboundaries(B6,4);imshow(label2rgb(L,@jet,[.5 .5 .5]))%对连通区域进行标记hold onfor k=1:length(B)%用线条给连通区域标上边界线boundary=B{k};plot(boundary(:,2),boundary(:,1),'w','LineWidth',2)endstats=regionprops(L,'Area','Centroid');%找到每个连通域的质心for k=1:length(B)%循环遍历每个连通域的边界boundary=B{k};%获取一条边界上的所有点delta_sq=diff(boundary).^2;perimeter=sum(sqrt(sum(delta_sq,2)));%计算边界周长area=stats(k).Area;%获取边界所围面积metric=27*area/perimeter^2;%计算匹配度metric_string=sprintf('%2.2f',metric);%要显示的匹配度字串if metric>=0.85&&metric<=1.15&&area>1000%截取出匹配度接近1且面积大于1000像素的连通域centroid=stats(k).Centroid;plot(centroid(1),centroid(2),'ko');%提取该连通域所对应在二值图像中的矩形区域goalboundary=boundary;s=min(goalboundary,[],1);e=max(goalboundary,[],1);goal=imcrop(Image,[s(2) s(1) e(2)-s(2) e(1)-s(1)]);endtext(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','g','FontSize',14,'FontWeight','bold') ;%显示匹配度字串endgoal=~goal;%对截取图像进行反色处理figure;imshow(goal);[a,b]=size(goal);for i=a/2:-1:1 %从图像水平中轴开始向上扫描,当白点数少于每行总点数的1/10时,停止扫描,并将该行定义为车牌字符区域的上限num=0;for j=1:bif goal(i,j)==1num=num+1;endendif num<(b*0.1)line_up=i;break;endendfor i=a/2:a %从图像水平中轴开始向下扫描,当白点数少于每行总点数的1/10时,停止扫描,并将该行定义为车牌字符区域的下限num=0;for j=1:bif goal(i,j)==1num=num+1;endendif num<(b*0.1)line_down=i;break;endendgoal=goal(line_up:line_down,1:b);%根据之前定义的上下限截取车牌字符区域figure;imshow(goal);%显示车牌字符区域[a,b]=size(goal);row=zeros(18);now=1;flag=0;for j=1:b %对截取出的字符区域进行竖列扫描,并取每列总点数的1/10作为阈值点,当每列的白点数从阈值以上掉落到阈值以下或从阈值以下上升到阈值以上时,记录该列的横坐标num=0;for i=1:aif goal(i,j)==1num=num+1;endendif flag==0if num<0.1*arow(now)=j;now=now+1;flag=1;endelseif num>0.1*arow(now)=j;now=now+1;flag=0;endendendif row(3)-row(2)>10 %判断扫描出的第二块区域(扫描到的第二列与第三列之间)是否包含有效字符,如包含,则将扫描到的第二列定义为字符分割的起始列;否则,则定义第一列为起始列now=2;elsenow=1;endfigure;l1=0;l2=0;for k=1:8m=row(now);n=row(now+1);temp=goal(1:a,m:n);point=0;%扫描每一个字符图片的白点数for i=1:afor j=1:n-mif temp(i,j)==1point=point+1;endendendif point>0.4*a*(n-m)&&n>m %当扫描到的白点数小于总点数的2/5时放弃输出(有可能是车牌上的点状分隔符)l2=l2+1;%l2用来记录识别出的字符数subplot(1,7,l2);x(k)=code(temp);%调用子程序进行字符扫描,并返回字符的ASCII码x(k)=uint8(x(k));if x(k)>0 %当所选区域不为空时进行输出l1=l1+1;%l1用来记录输出的字符数s(l1)=char(x(k));endtemp(32,32)=0;imshow(temp);endnow=now+2;endy=char(s);%将得到的ASCII码重新转换为字符并在屏幕上输出fprintf('\r\n该车辆的车牌号为:\r\n');disp(y);fprintf('\r\n输出的字符数为:%4d\r\n',l1);fprintf('识别出的字符数为:%4d\r\n',l2);。
(完整版)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的图像处理算法在智能交通系统中的应用。
1. 车辆检测在智能交通系统中,车辆检测是一个重要的环节。
通过图像处理算法可以实现对道路上行驶车辆的实时监测和识别。
Matlab提供了多种车辆检测算法,如Haar特征分类器、HOG特征检测等。
这些算法可以帮助系统准确地检测出车辆的位置和数量,为后续的交通管理提供数据支持。
2. 车牌识别车牌识别是智能交通系统中的另一个重要应用场景。
通过图像处理算法可以实现对车辆车牌号的自动识别,从而实现对车辆的跟踪和管理。
Matlab提供了基于OCR(Optical Character Recognition)的车牌识别算法,可以有效地识别出车牌上的文字信息,并将其转化为数字或字符形式。
3. 交通流量监测交通流量监测是智能交通系统中的核心功能之一。
通过对道路上车辆数量和速度的监测,可以实时掌握道路交通状况,并进行合理调度和管理。
Matlab提供了多种图像处理算法,如背景建模、运动目标检测等,可以帮助系统实现对交通流量的准确监测和统计。
4. 实时视频分析智能交通系统需要对道路上的实时视频进行分析和处理,以获取有用的交通信息。
Matlab提供了丰富的视频处理工具箱,可以帮助系统实现视频流的采集、处理和分析。
通过图像处理算法,可以实现对视频中车辆、行人等目标的检测和跟踪,为智能交通系统提供更加精准和可靠的数据支持。
5. 结语基于Matlab的图像处理算法在智能交通系统中有着广泛的应用前景。
通过利用Matlab强大的图像处理工具箱,开发人员可以快速实现各种复杂的图像处理算法,并将其应用于智能交通系统中,提升系统的性能和效率。
车牌识别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。
《2024年基于MATLAB的车牌识别系统研究》范文
《基于MATLAB的车牌识别系统研究》篇一一、引言随着科技的发展,车牌识别系统在交通管理、安全监控、车辆定位等领域的应用越来越广泛。
MATLAB作为一种强大的编程语言和数据处理工具,被广泛应用于图像处理和机器视觉等领域。
本文旨在研究基于MATLAB的车牌识别系统,包括系统的基本原理、实现方法、实验结果和结论。
二、车牌识别系统的基本原理车牌识别系统是一种基于图像处理和机器视觉技术的自动识别系统。
其主要原理包括图像预处理、车牌定位、字符分割和字符识别四个部分。
在MATLAB中,这些过程通过数字图像处理算法、计算机视觉算法以及机器学习算法实现。
(一)图像预处理图像预处理是车牌识别系统的第一步,主要目的是消除图像中的噪声和干扰信息,提高图像的清晰度和对比度,以便后续的图像处理和分析。
常用的预处理方法包括灰度化、二值化、滤波等。
(二)车牌定位车牌定位是车牌识别系统的关键步骤,其主要目的是从图像中准确地检测出车牌的位置。
常用的车牌定位方法包括基于颜色特征的方法、基于形状特征的方法和基于模板匹配的方法等。
在MATLAB中,可以通过边缘检测、Hough变换等方法实现车牌的定位。
(三)字符分割字符分割是将车牌图像中的每个字符分割出来的过程。
常用的字符分割方法包括投影法、连通域法等。
在MATLAB中,可以通过图像形态学操作、阈值分割等方法实现字符的分割。
(四)字符识别字符识别是将分割后的字符进行分类和识别的过程。
常用的字符识别方法包括模板匹配法、神经网络法等。
在MATLAB中,可以通过训练分类器、使用机器学习算法等方法实现字符的识别。
三、车牌识别系统的实现方法在MATLAB中,我们可以通过编写程序实现车牌识别系统的各个步骤。
具体实现方法如下:(一)图像预处理首先,对输入的图像进行灰度化和二值化处理,消除噪声和干扰信息。
然后,通过滤波等操作提高图像的清晰度和对比度。
(二)车牌定位通过边缘检测和Hough变换等方法检测出车牌的轮廓,并确定车牌的位置。
基于MATLAB的汽车牌照自动识别技术研究
基于MATLAB的车牌自动识别技术研究1、本文概述随着技术的快速发展和智能时代的到来,自动驾驶、智能交通系统等领域的研究和应用逐渐成为全球热点。
在这些领域,汽车牌照的自动识别技术起着至关重要的作用。
汽车牌照自动识别技术作为车辆的唯一标识,不仅可以提高交通管理效率,还可以为车辆跟踪、违章记录等提供有力支持。
本文旨在通过对相关算法和技术的深入探索,研究基于MATLAB的汽车牌照自动识别技术,为实际应用提供理论支持和技术指导。
本文首先阐述了车牌自动识别技术的研究背景和意义,指出其在智能交通系统中的重要地位。
随后,文章回顾了国内外该领域的研究现状和发展趋势,分析了现有技术的优缺点,为后续研究提供了理论支持。
在此基础上,重点介绍了基于MATLAB的车牌自动识别技术的实现过程,包括预处理、车牌定位、字符分割、字符识别等关键环节。
通过对这些方面的详细阐述,展示了MATLAB在车牌识别技术中的强大功能和优势。
本文还对所提出的算法和技术进行了实验验证和性能分析,并通过对比实验和实际应用案例验证了所提出算法的有效性和实用性。
展望了车牌自动识别技术的未来发展方向,为相关领域的研究人员提供了有益的参考和启示。
通过本文的研究,我们希望能为车牌自动识别技术的发展和推广做出贡献,推动智能交通系统的进一步发展,为人们的出行和生活带来更方便、更安全的体验。
2、车牌自动识别技术综述车牌自动识别(ALPR)是一项利用图像处理、模式识别、人工智能等技术自动捕获、识别和提取车牌的关键技术。
随着智能交通系统的发展,车牌自动识别技术已广泛应用于交通管理、车辆跟踪、违章记录、停车场管理等领域。
车牌自动识别技术主要包括四个步骤:图像预处理、车牌定位、字符分割和字符识别。
图像预处理用于提高图像质量,减少噪声干扰,并为后续步骤提供清晰稳定的图像。
车牌定位是使用算法在预处理的图像中定位车牌的位置,为后续的字符分割提供准确的车牌区域的过程。
字符分割是将车牌中的字符逐一分割,为字符识别中的单个字符提供输入的过程。
车牌识别的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代码
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平台下的车牌识别系统设计
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平台,设计一套车牌识别系 统,旨在提高车牌识别的准确性和效率,为智能交通管理提供有力支持。
(完整word版)基于Matlab的车牌识别(完整版)
基于Matlab的车牌识别摘要:车牌识别技术是智能交通系统的重要组成部分,在近年来得到了很大的发展。
本文从预处理、边缘检测、车牌定位、字符分割、字符识别五个方面,具体介绍了车牌自动识别的原理。
并用MATLAB软件编程来实现每一个部分,最后识别出汽车车牌。
一、设计原理车辆车牌识别系统的基本工作原理为:将摄像头拍摄到的包含车辆车牌的图像通过视频卡输入到计算机中进行预处理,再由检索模块对车牌进行搜索、检测、定位,并分割出包含车牌字符的矩形区域,然后对车牌字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。
车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。
其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。
某些车牌识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。
一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。
当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。
车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。
二、设计步骤总体步骤为:基本的步骤:a.车牌定位,定位图片中的车牌位置;b.车牌字符分割,把车牌中的字符分割出来;c.车牌字符识别,把分割好的字符进行识别,最终组成车牌号码。
车牌识别过程中,车牌颜色的识别依据算法不同,可能在上述不同步骤实现,通常与车牌识别互相配合、互相验证。
(1)车牌定位:自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定车牌区域是整个识别过程的关键。
首先对采集到的视频图像进行大范围相关搜索,找到符合汽车车牌特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为车牌区域,并将其从图象中分割出来。
交通标志检测与识别matlab 和python
交通标志检测与识别可以使用MATLAB和Python进行实现。
这里给出一个简单的例子,使用Python和OpenCV库进行交通标志检测与识别。
首先,确保已经安装了Python和OpenCV库。
可以使用以下命令安装OpenCV:```bashpip install opencv-python```接下来,创建一个名为`traffic_sign_detection.py`的Python文件,并添加以下代码:```pythonimport cv2# 加载预训练的模型model = cv2.dnn.readNetFromTensorflow('frozen_inference_graph.pb', 'graph.pbtxt')# 读取图像image = cv2.imread('test_image.jpg')# 将图像转换为blob格式blob = cv2.dnn.blobFromImage(image, size=(300, 300), swapRB=True, crop=False)# 设置输入并进行前向传播model.setInput(blob)output = model.forward()# 获取检测结果for detection in output[0, 0, :, :]:confidence = detection[2]if confidence > 0.5:class_id = int(detection[1])x1, y1, x2, y2 = (detection[3:7] * [image.shape[1], image.shape[0], image.shape[1], image.shape[0]]).astype(int)# 绘制边界框和类别标签cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)label = f"Class {class_id}: {confidence:.2f}"cv2.putText(image, label, (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)# 显示结果cv2.imshow('Traffic Sign Detection', image)cv2.waitKey(0)cv2.destroyAllWindows()```注意:这个例子需要一个预训练的模型(`frozen_inference_graph.pb`和`graph.pbtxt`),你可以从互联网上找到一些开源的交通标志检测模型。
车牌识别的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 对二值图像进行区域提取,并计算区域特征参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录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) 技术逐渐发展起来,成为信息处理技术的一项重要研究课题。
车牌自动识别是智能交通管理系统中的关键技术之一。
目前,国内外车牌的识别技术有IC卡识别技术、条形码识别技术、图像处理技术、人工神经网络识别技术。
采用计算机视觉技术和图像处理技术进行车牌识别是一个发展方向。
基于数字图像处理的车牌识别系统主要由图像的采集、牌照的定位、字符分割和字符识别四部分组成。
车牌识别技术的任务是处理、分析摄取的视频流中复杂背景的车辆图像,牌照字符定位、字符分割,最后自动识别车牌上的字符。
为了保证车牌识别系统在各种复杂环境下,能发挥其应有的作用,识别系统必须满足以下要求:(1) 鲁棒性: 在任何情况下均能可靠正常地工作,且有较高的正确识别率。
(2) 实时性:不论在汽车静止还是高速运行情况下,图像的采集识别系统必须在一定时间内识别出车牌全部字符,达到实时识别。
本文先提出了一种基于颜色与数学形态学的定位方法对车牌进行定位,后采用基于模板匹配的方法对车牌的字符识别进行研究。
车牌字符的识别过程实际上是在车牌准确定位的基础上,逐步去除非车牌字符区的干扰实现字符正确匹配的过程。
由于车牌中的字符数目有限(汉字约50个,字母A-Z,数字0-9),识别方法有其特殊性,它不需要大量的汉字库,但同时受现场环境的影响,分割出来的单个字符图像中往往存在噪声。
本文深入研究了一种基于神经网络的车牌字符识别算法,大规模的并行处理和分布式信息存储,良好的自适应性、自组织性,很强的学习功能、联想功能和容错功能,其识别率高,抗干扰能力强,灵活性大。
虽然神经网络具有较高的识别率,但单个神经网络的可信度并不高。
本文针对单个神经网络可信度不高的问题,提出了一种基于多个神经网络进行车牌字符识别的方法。
2.设计概述2.1车牌识别技术随着模式识别技术的发展,车牌字符识别已成为智能交通系统的重要组成部分,它可以从复杂的背景中准确地提取、识别汽车牌照、车辆类型等信息,在交通控制和监视中占有很重要的地位,具有广泛的应用前景。
所以,汽车牌照的识别问题已经成为现代交通工程领域中研究的重点和热点问题之一。
由于受环境、待识别车辆的车型复杂和车牌位置不固定等的影响,给车牌定位方法的选择带来一定的困难。
车牌本身的污染、缺损也会影响识别率。
一些车辆由于天气或是路况不好,使得车牌被灰尘、泥土沾染,另外还有一些车辆行驶时间较长,车牌上的字符已经部分缺损了,严重的时候,人眼也很难辨别车牌上的字符,这些情况都会影响系统的识别工作,导致误识别。
可见,要提高车牌定位系统和字符分割系统的正确率将碰到很多困难。
无疑,如果车牌字符识别系统有较高的自适应性和鲁棒性,即对有一定噪声或变形的字符图像仍能正确识别,则会极大的减轻车牌定位系统和字符分割系统的压力。
因此,设计一个抗干扰性能良好的车牌字符识别系统对整个车牌自动识别系统都是有益的。
同时,字符在某种程度上反映了图形的一般特点,是一类特别的图形,其自动识别一直受到人们的极大关注,因为它的解决对于人们的生产和生活具有非常现实的意义。
2.2 车牌识别技术的发展车牌识别技术产生于上世纪末开始的智能交通革命,智能交通系统经过近十多年的推广、试行和发展,目前已成功地应用于若干经济发达及较为发达国家的都市及城市高速公路系统中。
而车牌识别系统正是在这种应用背景下研制出来的,能够自动实时检测车辆经过和识别汽车牌照的智能交通管理系统。
在经历了上个世纪末的起步阶段之后,车牌识别技术已日趋走向成熟,并开始在交通、公安、路政、停车场、安防、门禁、智能小区等许多领域得到了广泛的应用。
车牌识别系统简单地说是一种以特定目标为对象的专用视觉系统,它能够从一幅图像中提取分割并识别出车辆牌照,运用先进的图像处理、模式识别和人工智能技术,通过对图像的采集和处理完成车辆牌照的自动识别,识别结果可按需求分别包括车牌的字符、数字、牌照图像,以至牌照颜色、坐标、字体颜色等。
目前,车牌识别系统己经最广泛应用到包括智能交通违章监视管理(电子普察),高速公路不停车收费,车辆检测,停车场监控与管理等应用中,一方面,车牌识别系统本身是一个全数字化的智能系统,在它上面只要做不多的扩充,就可以衍生出一些其他功能。
另一方面,即使是世界上很多研究机构和公司专门从事这方面的研发工作,高可靠性,高性能和高识别率的车牌识别系统还待开发,LPR 系统发展迅速,出现了一些较为实用的产品。
2.3 车牌识别技术的国内外研究现状从20世纪90年代初,国外就已经开始了对车牌自动识别的研究,其主要途径就是对车牌的图像进行分析,自动提取车牌信息,确定车牌号。
在各种应用中,有使用模糊数学理论也有用神经元网络的算法来识别车牌中的字符,但由于外界环境光线变化、光路中有灰尘、季节环境变化及车牌本身比较模糊等条件的影响,给车牌的识别带来较大的困难。
国外的相关研究有:(1)J Barroso提出的基于扫描行高频分析的方法; (2) I.T. Lancaster提出的类字符分析方法等。
为了解决图像恶化的问题,目前国内外采用主动红外照明摄像或使用特殊的传感器来提高图像的质量,继而提高识别率,但系统的投资成本过大,不适合普遍的推广。
车牌识别系统中的两个关键子系统是车牌定位系统和车牌字符识别系统。
关于车牌定位系统的研究,国内外学者已经作了大量的工作,但实际效果并不是很理想,比如车牌图像的倾斜、车牌表面的污秽和磨损、光线的干扰等都是影响定位准确度的潜在因素。
为此,近年来不少学者针对车牌本身的特点,车辆拍摄的不良现象及背景的复杂状况,先后提出了许多有针对性的定位方法,使车牌定位在技术和方法上都有了很大的改善.然而现代化交通系统不断提高的快节奏,将对车牌定位的准确率和实时性提出更高的要求。
因而进一步加深车牌定位的研究是非常必要的。
车牌字符识别是在车牌准确定位的基础上,对车牌上的汉字、字母、数字进行有效确认的过程,其中汉字识别是一个难点,许多国外的LPR系统也往往是因为汉字难以识别而无法打入中国市场,因而探寻好的方法解决字符的识别也是至关重要的。
目前己有的方法很多,但其效果与实际的要求相差很远,难以适应现代化交通系统高速度、快节奏的要求。
因而对字符识别的进一步研究也同样具有紧迫性和必要性。
从实用产品来看,如以色列的Hi-Tech公司研制的多种See/Car system,适应于几个不同国家的车牌识别,就针对中国格式车牌的See/Car syste而言,它不能识别汉字,且识别率有待提高。
新加坡Optasia公司的VLPRS产品,适合于新加坡的车牌,另外日本、加拿大、德国、意大利、英国等西方发达国家都有适合于本国车牌的识别系统。
我国的实际情况有所不同,国外的实际拍摄条件比较理想,车牌比较规范统一,而我国车牌规范不够,车牌的颜色多,且位数不统一,处理的难度大大增加。
国内做得较好的产品主要是中科院自动化研究所汉王公司的“汉王眼”,此外国内的亚洲视觉科技有限公司、深圳市吉通电子有限公司、中智交通电子系统有限公司等都有自己的产品,另外西安交通大学的图像处理与识别研究室、上海交通大学的计算机科学与工程系、清华大学、浙江大学等都做过类似的研究。
通常处理时为了提高系统的识别率,都采用了一些硬件的探测器和其他的辅助设备如红外照明等,其中“汉王眼”就是采用主动红外照明和光学滤波器来减弱可见光的不可控制影响,减少恶劣气候和汽车大小灯光的影响,另外还要求在高速公路管理窗口到“汉王眼”识别点埋设两条线路管道,一条管道铺设220伏50赫兹1安培的交流供电线路:另一条管道铺设触发信号线路和汉王眼与管理计算机的通讯线路,投资巨大,不适合于大面积的推广。
另外,还有两种专门的技术被用于车牌的识别中,条形码识别技术和无线射频技术。
条形码识别要求预先在车身上印刷条形码,在系统的某一固定位置上安装扫描设备,通过扫描来读取条形码,以达到识别车辆的目的。
无线射频技术要求在车内安装标示卡,在系统某一位置安装收发器等装置,通过收发器来接受标示卡的信号,从而识别出经过的车辆。
显然,这两种技术更难以推广。
从目前一些产品的性能指标可以看出,车牌识别系统的识别率和识别速度有待提高。
现代交通的飞速发展以及车牌识别系统应用范围的日益拓宽给车牌识别系统提出了更高的要求。
因此,研究高速、准确的定位与识别算法是当前的主要任务,而图像处理技术的发展与摄像设备、计算机性能的提高都会促进车牌识别技术的发展,提高车牌识别系统的性能。
2.4 主要应用领域本论文关于车牌自动识别系统具有广泛的应用范围,主要应用于:(1)公路收费、监控管理;(2)小区、停车场管理;(3)城市道路监控、违章管理;(4)车牌登录、验证;(5)车流统计、安全管理等。
车牌自动识别系统应用于这些系统,可以解决通缉车辆的自动稽查问题,可以解决车流高峰期因出入口车流瓶颈造成的路桥卡口、停车场交通堵塞问题,可以解决因工作人员作弊造成的路桥卡口、高速公路、停车场应收款流失的问题,还可以以最简单的方式完成交通部门的车辆信息联网,解决数据统计自动化,模糊查询的问题。