车牌识别matlab程序[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程序的难点与解决方法车牌识别是近年来越来越流行的人工智能技术之一,其应用包括智能停车、智能交通等领域。

在车牌识别的matlab程序中,存在许多难点和解决方法,下面我们将对其进行详细介绍和拓展。

一、车牌识别算法的难点1.图像质量要求高车牌识别算法对图像质量要求非常高,因为车牌图像的质量直接影响识别准确率。

图像噪声、光线变化、车牌的形状和大小等因素都会影响车牌识别的精度。

2.多牌识别困难在实际的车牌识别中,往往需要同时识别多张牌,如多个车牌、不同号码的车牌等。

这种情况下,多牌识别是一个难点,需要采用一些特殊的算法和技术来解决。

3.车牌号码提取困难车牌号码提取是车牌识别算法中非常重要的一个环节,但也是难点之一。

因为车牌号码提取需要对图像进行特征提取和字符识别,这对图像的清晰度、颜色深度等要求较高,同时也需要考虑到字符大小、字符形状等因素。

4.字符识别错误在车牌识别中,字符识别是一个重要的环节,但也是容易出现错误的。

因为车牌中的字符形状和大小不同,而且有些字符在图像中可能处于不同的位置,这些因素都可能导致字符识别错误。

二、车牌识别matlab程序的解决方法1.提高图像质量提高图像质量是解决车牌识别算法中图像质量要求高的问题的有效方法。

可以通过调整相机参数、使用高质量的图像编辑软件等方式来提高图像质量。

2.优化多牌识别算法针对多牌识别的难点,可以通过优化算法来实现多牌识别。

可以采用一些特殊的算法和技术,如图像分割、特征提取、字符相似度计算等,来提高车牌识别的准确率和稳定性。

3.优化字符识别算法针对字符识别的难点,可以通过优化字符识别算法来实现。

可以采用一些特殊的算法和技术,如图像分割、特征提取、字符相似度计算等,来提高字符识别的准确率和稳定性。

4.优化车牌号码提取算法针对车牌号码提取的难点,可以通过优化车牌号码提取算法来实现。

可以采用一些特殊的算法和技术,如图像分割、特征提取、字符相似度计算等,来提高车牌号码提取的准确率和稳定性。

基于MATLAB的车牌识别系统的源代码(可以实现)

基于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车牌识别

(完整版)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的车牌识别系统的实现

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

牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术,其硬件一般包括触发、摄像、照明、图像采集等设备,其软件核心包括车牌定位、车牌字符分割和字符识别等算法。

2 系统的实现
2.1 系统简述
一个完整的牌照识别系统应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。

当车辆到达触发图像采集单元时,系统采集当前的视频图像,牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。

牌照识别系统原理如图
1 所示。

2.
2 图像预处理
输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。

对图像进行灰度化处理、提取背景图像、增强处理、图像二值化、边缘检测、滤波等处理的主要MATLAB 语句如下所示:2.3 车牌定位
自然环境下,汽车图像背景复杂,光照不均匀,在自然背景中准确地确定牌照区域是整个图像识别过程中的关键。

首先对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进。

车牌识别的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 图像处理的汽车牌照识别系统仇成群(盐城师范学院,江苏盐城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的汽车牌照识别程序摘要:本次作业的任务是设计一个基于matlab的汽车牌照识别程序,能够实现车牌图像预处理,车牌定位,字符分割,然后通过神经网络对车牌进行字符识别,最终从一幅图像中提取车牌中的字母和数字,给出文本形式的车牌号码。

关键词:车牌识别,matlab,神经网络1 引言随着我国交通运输的不断发展,智能交通系统(Intelligent Traffic System,简称ITS)的推广变的越来越重要,而作为ITS的一个重要组成部分,车辆牌照识别系统(vehicle license plate recognition system,简称LPR)对于交通管理、治安处罚等工作的智能化起着十分重要的作用。

它可广泛应用于交通流量检测,交通控制于诱导,机场,港口,小区的车辆管理,不停车自动收费,闯红灯等违章车辆监控以及车辆安全防盗等领域,具有广阔的应用前景。

由于牌照是机动车辆管理的唯一标识符号,因此,车辆牌照识别系统的研究在机动车管理方面具有十分重要的实际意义。

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

3 车辆牌照识别系统组成(1)图像预处理:对汽车图像进行图像转换、图像增强和边缘检测等。

(2)车牌定位:从预处理后的汽车图像中分割出车牌图像。

即在一幅车辆图像中找到车牌所在的位置。

(3)字符分割:对车牌图像进行几何校正、去噪、二值化以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像(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进行车牌识别的技巧与实践

使用Matlab进行车牌识别的技巧与实践引言:车牌识别技术是计算机视觉领域中一个重要的研究方向。

随着交通流量的急剧增加,车牌识别已成为自动化交通监控系统中的一项核心任务。

本文将介绍如何使用Matlab进行车牌识别,并分享一些技巧与实践经验。

一、图像预处理车牌识别的第一步是图像预处理,目的是提取感兴趣的车牌区域。

在Matlab中,可以使用各种图像处理函数来进行预处理操作,如灰度化、二值化、滤波等。

其中,灰度化可以将彩色图像转换为灰度图像,简化后续处理过程。

二值化操作则能够将图像处理为黑白两色,方便车牌区域的提取。

此外,使用滤波函数可以对图像进行平滑处理,减少噪声的干扰。

二、车牌区域提取在预处理过程中,车牌区域的提取是非常关键的一步。

通常情况下,可以通过车牌的形状和颜色进行提取。

Matlab提供了多种寻找物体边界的方法,如边缘检测、连通区域分析等。

边缘检测可以识别图像中的边缘信息,然后根据车牌的形状特点,选择合适的方法提取车牌边缘。

连通区域分析则可以找到图像中具有相同灰度或颜色的连通区域,进一步筛选出车牌区域。

三、字符分割车牌识别的下一个步骤是字符分割。

通过将车牌图像分割为单个字符,可以便于后续的字符识别工作。

在Matlab中,字符分割可以通过一系列几何变换和图像处理操作来实现。

例如,可以使用形态学操作来去除车牌区域中的噪声和冗余信息,然后通过寻找字符之间的间隔来进行字符的分割。

另外,还可以考虑使用基于模板匹配的方法来实现字符分割。

四、字符识别字符识别是车牌识别的核心环节之一。

在Matlab中,有多种方法和工具可以实现字符识别。

一种常用的方法是基于模板匹配的字符识别算法。

该方法需要预先准备好字符的模板库,并通过计算输入字符与模板之间的匹配度来实现识别。

另一种常用的方法是基于机器学习的字符识别算法,如支持向量机(SVM)和深度学习算法。

这些算法可以通过训练样本来学习字符的特征,然后进行识别。

不同的方法有各自的优缺点,根据具体需求选择合适的算法进行字符识别。

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

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

基于 matlab 的车牌识别系统一、目的与要求目的:利用 matlab 实现车牌识别系统,熟悉matlab应用软件的根底知识,了解了根本程序设计方法,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、高效的贯穿到实践中来,防止理论与实践的脱离,稳固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。

同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论根底,有助于自身综合能力的提高。

要求:1.理解各种图像处理方法确切意义。

2.独立进展方案的制定,系统构造设计要合理。

3.在程序开发时,那么必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。

如果使用matlab 来进展开发,要理解每个函数的具体意义和适用X围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。

4、通过多幅不同形式的图像来检测该系统的稳定性和正确性。

二、设计的内容学习 MATLAB 程序设计,利用MATLAB 函数功能,设计和实现通过设计一个车牌识别系统。

车牌识别系统的根本工作原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进展预处理,再对牌照进展搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进展二值化并将其分割为单个字符,然后将其逐个与创立的字符模板中的字符进行匹配,匹配成功那么输出,最终匹配完毕那么输出那么为车牌的数字。

车牌识别系统的根本工作原理图如图1所下所示:车辆字符分割字符识别图像采集车牌的定位三、总体方案设计车辆牌照识别整个系统主要是由车牌定位和字符分割识别两局部组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。

为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的比照度和清晰可辩的牌照图象。

但由于是采用智能手机在开放的户外环境拍照,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进展识别前的预处理。

车牌识别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、实验改进
根据实验结果,我们发现车牌定位和字符分割模块是影响系统性能的关键因 素。因此,我们计划从以下两个方面进行改进:
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)。

[, pathname] = uigetfile({'*.jpg', 'JPEG文件(*.jpg)';'*.bmp','BMP文件(*.bmp)';});
if( == 0), return, end
global %声明全局变量
= [pathname ];
I=imread();
imshow(I); %显示图像I
I1=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*25
I4=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:y
for j=1:x
if(myI(i,j,1)==1)
%如果myI(i,j,1)即myI图像中坐标为(i,j)的点为白色
%则white_y的相应行的元素white_y(i,1)值加1
white_y(i,1)= white_y(i,1)+1;
end
end
end
[temp MaxY]=max(white_y); %temp为向量white_y的元素中的最大值,MaxY为该值的索引(在向量中的位置)
PY1=MaxY;
while ((white_y(PY1,1)>=80)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY;
while ((white_y(PY2,1)>=80)&&(PY2<y))
PY2=PY2+1;
end
IY=I(PY1:PY2,:,:); %IY为原始图像I中截取的纵坐标在PY1:PY2之间的部分%end横向扫描
%begin纵向扫描
white_x=zeros(1,x);
for j=1:x
for i=PY1:PY2
if(myI(i,j,1)==1)
white_x(1,j)= white_x(1,j)+1;
end
end
end
PX1=1;
while ((white_x(1,PX1)<3)&&(PX1<x))
PX1=PX1+1;
end
PX2=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=toc
figure,plot(white_y);grid
figure,plot(white_x);grid
figure,imshow(IY);
figure,imshow(Plate);
% if isrgd(Plate);
Plate3=rgb2gray(Plate);
%else
% Plate2=Plate;
%end
plate4=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:y1
for j=1:x1
if(plate1(i,j,1)==1)
Y1(i,1)=Y1(i,1)+1;
end
end
end
py1=1;
py0=1;
while((Y1(py0,1)<20)&&(py0<y1)) py0=py0+1;
end
py1=py0;
while((Y1(py1,1)>=20)&&(py1<y1)) py1=py1+1;
end
plate=plate(py0:py1,:,:);
figure,imshow(plate);
X1=zeros(1,x1);
for j=1:x1
for i=1:y1
if(plate1(i,j,1)==1)
X1(1,j)=X1(1,j)+1;
end
end
end
figure
plot(0:x1-1,X1)
px0=1;
px1=1;
for i=1:7
while((X1(1,px0)<3)&&(px0<x1))
px0=px0+1;
end
px1=px0;
while(((X1(1,px1)>=3)&&(px1<x1))||((px1-px0)<10)) px1=px1+1;
end
Z=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;
otherwise
PIN6=Z;
end
figure
% subplot(1,7,i);
imshow(Z);
px0=px1;
end。

相关文档
最新文档