收藏 分销(赏)

MATLAB车牌识别论文加源码.doc

上传人:二*** 文档编号:4509158 上传时间:2024-09-26 格式:DOC 页数:20 大小:594KB 下载积分:5 金币
下载 相关 举报
MATLAB车牌识别论文加源码.doc_第1页
第1页 / 共20页
本文档共20页,全文阅读请下载到手机保存,查看更方便
资源描述
姓名 学号 成绩 xxxx大学 数字图像处理本科生课程论文 论文题目:___车牌识别方法研究______ 完成时间:___2016年6月1日_______ 所在专业:___软件工程______________ 所在年级:___大三年级______________ 基于MATLAB的车牌识别方法研究 xxx级软件专业1班 xxx xx 摘要:汽车车牌的识别是智能交通管理的重要组成部分之一。 本文主要介绍车牌区域提取、字符切割、字符识别。车牌区域提取主要包括图像灰度图转化、图像边缘检测、灰度图腐蚀、图像平滑处理、边界值计算。字符切割主要包括图像去噪处理、图像膨胀和腐蚀处理。字符识别主要包括图像膨胀和腐蚀处理、字符归一化。 关键词:MATLAB、车牌区域提取、字符识别、字符切割 1 研究背景 随着经济社会的迅猛发展,人们的生活水平的提高,机动车辆的数量也越来越多。为了提高车辆的管理效率,缓解公路上的交通压力,我们必须找到一种解决方案。而作为汽车“身份证”的汽车车牌,是在公众场合能够唯一确定汽车身份的凭证。我们可以以此为依据,设计一种车牌识别系统监控各个车辆的情况。 车牌识别的难点: ① 我国汽车牌照自身特征的复杂性 1) 汉字、字母、数字混合。我国的车牌不单单有英文字母和阿拉伯数字, 还有汉字。 2) 颜色种类多。国外的车牌颜色种类相对于国内较少一些,我国的车牌颜 色种类较多。 3) 人为因素复杂。由于环境、道路或者人为因素造成车牌有严重污渍、车 牌模糊不清或者车牌偏斜角度很大的车辆,在我国都可以上路行驶。 4) 车牌格式多。我国的车牌格式很多,包括:民用车牌、公安警察车牌、 武警车牌、军车车牌、外交车牌、特种车牌、消防车牌等。 ② 外部环境影响 1) 外部光照条件各不相同,白天和晚上的光照各不相同。光照对采集的图 像质量产生很大的影响。不同的光照角度对车牌光照的不均匀影响也很大。不同的气候条件、背景光照环境、车牌反光程度都决定了车牌的亮度特征。2) 外界背景的复杂程度也影响车牌的定位准确率。背景中和车牌区域当中 有许多和车牌特征相似的长方形区域,这些容易给车牌定位造成误判导致车牌定位的准确率降低。 2 主要理论概况 本图像预处理模块是将图像灰度化和用Roberts算子进行边缘检测的步骤。车牌定位和分割采用的是利用数学形态法来确定车牌位置,再利用车牌彩色信息的彩色分割法来完成车牌部位分割。字符的分割采用的方法是以二值化后的车牌部分进行垂直投影,然后在对垂直投影进行扫描,从而完成字符的分割。本文即是针对其核心部分进行阐述并使用MATLAB软件环境中进行字符分割的仿真。 一个完整的车牌号识别系统要完成从图像采集到字符识别输出,过程相当复杂,基本可以分成硬件部分跟软件部分,硬件部分包括系统触发、图像采集,软件部分包括图像预处理、车牌位置提取、字符分割、字符识别四大部分。 3 研究的主要内容 3.1 车牌识别研究内容 车牌定位的研究现状车牌定位决定其后的车牌字符分割和识别,因此车牌定位是车牌识别技术中最关键的一步。车牌定位的目的是从包含整个车辆的图像中找到车牌区域的图像。车牌定位方法的出发点是利用车牌区域的特征来判断牌照,将车牌区域从整幅车辆图像中分割出来。 车牌字符识别的研究现状车牌字符识别就是对分割出的待识别的字符进行识别处理。车牌的字符由有限的汉字、英文字母和数字组成。目前车牌字符识别最常用于车牌字符识别的方法是基于模板匹配的方法、基于特征分类的方法两大类。 字符分割算法一直在不断的完善。针对车牌的字符分割,是字符分割的一个具体应用,目前根据车牌的字符特征提出的算法主要有:基于先验知识的分割算法、基于投影轮廓和拓扑结构的分割算法等。例如,黄可为等利用视觉神经生理学和认知学实验结果,归纳出一种仿生目标搜索策略将其运行到车牌字符分割中。吴进军等根据车牌字符的排列规律和字符的几何特征,提出了一种基于第三个字符定位的车牌字符分割方法,很好地解决了车牌定位后的字符缺损情况。 3.2 车牌识别系统程序设计 3.2.1车牌区域提取 图像读取及车牌区域提取主要有:图像灰度图转化、图像边缘检测、灰度图腐蚀、图像的平滑处理以及车牌区域的边界值计算。其程序流程图如下: 输入车牌图象 灰度校正 平滑处理 提取边缘 图 3.1 预处理及边缘提取框图 3.2.2图像灰度图转化 由于车牌的底色不同,所以从RGB图像直接进行车牌区域提取存在很大困难,但不管哪种底色的车牌,其底色与上面的字符颜色的对比度大,将RGB图像转化成灰度图像时,车牌底色跟字符的灰度值会相差很大。。原图、灰度对于将彩色图象转换成灰度图象时,图象灰度值H可由下面的公式计算: (3.1) (3.2) 通过程序运行其效果图见图3.2和图3.3: 图 3.2 原始图像 图 3.3灰度图像 经过程序运行出来的灰度图可以比较容易的识别出车牌的区域,达到了预期的灰度效果。 3.2.3图像的边缘检测 在Matlab中利用函数edge()实现边缘检测,具体的用法如下所示: Car_Image_Bin=edge(Car_Image_Gray,'robert',0.15,'both'); Robert 算子采用对角方向相邻两像素之差,其计算公式如下: (3.3) (3.4) 其幅值为: (3.5) 使用边缘检测,腐蚀效果如图3.4所示: 图 3.4 边缘效果图 基本上达到了边缘检测的效果。但是,在车牌附近的其他区域也由于各种干扰的影响,也存在一些白色区域。所以要对图像做进一步的处理,用灰度图腐蚀来消除多余的边界点。 3.2.4灰度图腐蚀 所谓腐蚀即一种消除边界点,使边界向内部收缩的过程。利用它可以消除小而且无意义的物体。腐蚀的规则是输出图像的最小值是输入图像领域中的最小值,在一个二值图像中,只要有一个像素值为0,则相应的输出像素值为0。本系统使用imerode()函数, Car_Image_Erode=imerode(Car_Image_Bin,Se); 腐蚀后如图: 图 3.5 腐蚀效果图 已经得到了车牌图像的轮廓线了,只要再经过适当的处理即可把车牌提出出来。 3.2.5图像平滑处理 得到车牌区域的图像轮廓线后,由于图像的数字化误差和噪声直接影响了脚点的提取,因此在脚点提取之前必须对图像进行平滑处理,Matlab有一个图像平滑处理函数imclose() Car_Image_Perform=imclose(Car_Image_Erode,Se); 结构单元中Se一个小于对象闭合图形,只要两个封闭域的距离小于Se,就将这两个连接成一个连通域,Se生成方式采用 Se=strel('rectangle',[25,25]); 由于车牌图像经过腐蚀以后只剩下车牌区域以及车的标志。在程序运行的图像平滑后效果如下: 图 3.6 平滑处理后效果 从平滑后的效果图分析,达到了预定的目标。消除了图像的数字化误差和噪声对脚点的直接提取的影响。 3.2.6移除小对象 图像平滑处理了,可能会有多个闭合区域,对于不是车牌区域的必须予以删除,Matlab提供了一个函数bwareaopen(),用于删除二值图像中面积小于一个定值的对象,默认情况下使用8邻域, Car_Image_Perform2=bwareaopen(Car_Image_Perform,2000); 这样,Car_Image_Perform中面积小于2000的对象都被删除了。 小对象被删除后的图像如图3.7所示: 图 3.7 移除小对象后效果图 移除小对象后的效果图已经非常明显了,图像中最后只存在车牌区域,其他的图像已经完全滤除掉了,包括小物体,车的标志等影响已经没有了。 3.2.7车牌区域的边界值计算 采用水平与垂直双向投影法。 水平坐标的确定,先定义一个的数组,其中为原始图像的宽度值,然后将二值图像垂直投影到轴。从直方图中基本可以看书水平方向上的两个分界线,为了便于处理,该课题将像素值临界值定量化,取值5个像素。从左向右寻找第一个1值像素大于5的坐标为水平方向左侧分界线,从右向左寻找到第一个1值像素量大于5的为右侧分界线,程序可以用for循环语句。 垂直方向的分界线可用同样的方法实现。分界线计算后,即可从原图像中剪切出只包含车牌的区域图像。剪切得到的图像如下。图3.9为RGB图像切割出来的图像: 图 3.9 原图中的车牌区域图像 对比原始图像与二值图裁减图可以看出,车牌的四个边界值基本上被确定下来了,这样就可以从原始图像中直接确定车牌的区域了。所以车牌就成功地被提取出来了 3.2.8车牌处理 先将RGB图像转换成灰度值,再将灰度图转化成二进制图,在Matlab实现方式如下: T=round(License_Image_Gray_max-(License_Image_Gray_max-License_Image_Gray_min)/3); 同时采集大的图像噪点依然存在,因此可以通过处理图像的低频部分来锐化图像。这里采用高通滤波算法。 腐蚀已经在在上文介绍,膨胀刚好与腐蚀相反,运算规则是输出图像的像素值是输入图像邻域中的最大值,在一个二值图像中,只要一个像素值为1,则相应的输出像素值为1。 根据经验值,车牌图像中,字符面积与车牌面积之比在(0.235,0.365)之间,因此计算字符面积与车牌面积比值,如果大于0.365则对图像进行腐蚀,如果小于0.235则对图像进行膨胀, 在这里结构元素Se使用一个二维单位矩阵。 图 3.12 车牌处理后效果 4 结论 根据车牌特点,车牌定位的算法分为三类,一类是基于边缘的,一类是基于颜色的,一类是基于机器学习的等。这里我采用的是边缘检测的方法实现定的。    字符分割的方法也有多种:1. 基于聚类分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是针对在车牌定位,图像预处理后比较规则的车牌图像。优点是程序逻辑设计简单,循环执行功能单一,便于设计和操作,程序执行时间短。  字符识别的基本方法通常又三类:1.结构特征分析方法;2.模板匹配法;3.神经网络法。此处采用的是模板匹配的方法,即是将要识别的字符与事先构造好的模板进行比对,根据与模板的相似度的大小来确定最终的识别结果。     但是系统本身还存在许多不足,特别是对图像的分割与识别,目前还存在一定问题。 距离具体实用的要求仍有很大差距,但我却在这次 学习中学到了很多知识! 参考文献    [1] 张红,数字图像处理与分析 [2] 叶晨洲,廖金周,一种基于纹理的牌照图象二值化方法 [3] 刘阳,伊铁源等.数字图象处理应用于车辆牌照的识别 [4] 崔江、王友仁.车牌自动识别方法中的关键技术研究 [5] 韩勇强、李世祥.汽车牌照子图像的定位算 附录:程序源码 % function [d]=main() close all clc    % 清空命令窗口的所有输入和输出,类似于清屏 %自动弹出提示框读入图像 [filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入% file=strcat(filepath,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名 I=imread(file); figure('name','原图'),imshow(I);title('原图') %图像增强 % h=ones(5,5)/25; %过滤器h % I=imfilter(I,h);%真彩色增强 % figure('name','真彩色增强');imshow(I);title('真彩色增强'); I1=rgb2gray(I); % RGB图像转灰度图像 figure('name','灰度处理前'),subplot(1,2,1),imshow(I1);title('灰度处理前的灰度图'); subplot(1,2,2),imhist(I1);title('灰度处理前的灰度图直方图'); %线性灰度变换 I1=imadjust(I1,[0.3,0.7],[]); figure('name','灰度处理后'),subplot(1,2,1),imshow(I1);title('灰度处理后的灰度图'); subplot(1,2,2),imhist(I1);title('灰度处理后的灰度图直方图'); %进行中值滤波 I1=medfilt2(I1); figure,imshow(I1);title('中值滤波'); %边缘检测:sobel,roberts,canny,prewitt等 I2=edge(I1,'roberts',0.25,'both'); %边缘检测算法,强度小于阈值0.15的边缘被省略掉,'both'两个方向检测(缺省默认) figure('name','边缘检测'),imshow(I2);title('robert算子边缘检测')  se=[1;1;1]; I3=imerode(I2,se);% 腐蚀Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象 figure('name','腐蚀后图像'),imshow(I3);title('腐蚀后的图像'); se=strel('rectangle',[20,20]);% 25X25的矩形 strel??? I4=imclose(I3,se);% 用25*25的矩形对图像进行闭运算(先膨胀后腐蚀)有平滑边界作用 figure('name','平滑处理'),imshow(I4);title('平滑图像的轮廓'); I5=bwareaopen(I4,1000);% 从二进制图像中移除所有少于2000像素的连接对象,消失的是连续的白色像素数量少于2000的字符 figure('name','移除小对象'),imshow(I5);title('从对象中移除小对象'); [y,x,z]=size(I5);% y是行数,x是列数,z是维数 myI=double(I5);% 转成双精度型 tic   % 开始计时 Blue_y=zeros(y,1);% zeros(M,N) 表示的是M行*N列的全0矩阵 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);% Y方向车牌区域确定 [temp MaxY]临时变量MaxY PY1=MaxY;  % 以下为找车牌Y方向最小值 while ((Blue_y(PY1,1)>=5)&&(PY1>1))%% 为什么判断蓝色像素点>=5(才算蓝色)????         PY1=PY1-1; end     PY2=MaxY; % 以下为找车牌Y方向最大值 ???难道最大值不是MaxY???? while ((Blue_y(PY2,1)>=5)&&(PY2<y))         PY2=PY2+1; end % IY=I(PY1:PY2,:,:); %%%%%%%%%%%%%%%%% X方向 %%%%%%%%% Blue_x=zeros(1,x);% 进一步确定x方向的车牌区域 for j=1:x      for i=PY1:PY2  % 只需扫描的行          if(myI(i,j,1)==1) %% 判断蓝色像素             Blue_x(1,j)= Blue_x(1,j)+1; % 蓝色像素点统计                       end       end    end PX1=1;% 以下为找车牌X方向最小值 while ((Blue_x(1,PX1)<3)&&(PX1<x))%% 为什么判断蓝色像素点<3(不算蓝色?)????        PX1=PX1+1; end     PX2=x;% 以下为找车牌X方向最大值 while ((Blue_x(1,PX2)<3)&&(PX2>PX1))         PX2=PX2-1; end PY1=PY1-2;% 对车牌区域的校正 为什么要这么+-??? PX1=PX1-2; PX2=PX2+3; PY2=PY2+10; dw=I(PY1:PY2-8,PX1:PX2,:);% 裁剪图像 toc %t=toc; % 停止计时 %figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域'); figure('name','定位剪切后的彩色车牌图像'),%subplot(1,2,2), imshow(dw),title('定位剪切后的彩色车牌图像') imwrite(dw,'dw.jpg'); % 直接自动读入%[filename,filepath]=uigetfile('dw.jpg','输入一个定位裁剪后的车牌图像'); %jpg=strcat(filepath,filename); % strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名 a=imread('dw.jpg'); b=rgb2gray(a); imwrite(b,'1.车牌灰度图像.jpg'); figure('name','车牌处理');subplot(3,2,1),imshow(b),title('1.车牌灰度图像') %g_max=double(max(max(b)));% 以下作阈值化(灰度图转二值图) %g_min=double(min(min(b)));% max(a)求的每列的最大值,是一维数据;max(max(a)) 是求这一维数据的最大值。 %T=round(g_max-(g_max-g_min)/2); % T 为二值化的阈值  round:取整为最近的整数 %[m,n]=size(b);% m:b的行向量数 n:b的列向量数 %d=(double(b)>=T);  % d:二值图像 %imwrite(d,'2.车牌二值图像.jpg'); %线性灰度变换 b=imadjust(b,[0.3,0.7],[]); subplot(3,2,2),imshow(b);title('2.线性灰度处理后的灰度图'); %进行二值化处理 d=im2bw(b,0.4);%将灰度图像进行二值化处理 imwrite(d,'2.车牌二值图像.jpg'); subplot(3,2,3),imshow(d),title('3.车牌二值图像');%显示二值化图像 %进行中值滤波 d=medfilt2(d); imwrite(d,'4.均值滤波后.jpg'); subplot(3,2,4),imshow(d);title('4.中值滤波后'); % 均值滤波 %h=fspecial('average',3); %d=im2bw(round(filter2(h,d)));% 滤波后,im2bw():将图像转成二值图像 (可以不用round函数 也是一样的) %imwrite(d,'4.均值滤波后.jpg'); %subplot(3,2,4),imshow(d),title('4.均值滤波后') % 某些图像进行操作 % 膨胀或腐蚀  ???感觉没什么效果咧??? % se=strel('square',3);  % 使用一个3X3的正方形结果元素对象对创建的图像进行膨胀 % 'line'/'diamond'/'ball'/'square'/'dish'... 线/菱形/球/正方形/圆 se=eye(2); % eye(n) 返回n乘n单一矩阵; 单位矩阵 [m,n]=size(d); if bwarea(d)/m/n>=0.365 % 函数bwarea 计算目标物的面积,单位是像素;bwarea/m/n即为单个像素??     d=imerode(d,se);% 腐蚀 elseif bwarea(d)/m/n<=0.235     d=imdilate(d,se);% 膨胀 end imopen(d,se); %se=eye(7); %imopen(d,se); imwrite(d,'5.膨胀或腐蚀处理后.jpg'); subplot(3,2,5),imshow(d),title('5.膨胀或腐蚀处理后') % 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割 d=qiege(d);% 调用qiege()子程序 [m,n]=size(d); figure,subplot(2,1,1),imshow(d),title(n) %k1=1;k2=1; j=1; s=sum(d);%sum(x)就是竖向相加,求每列的和,结果是行向量;sum(x,2)表示矩阵x的横向相加,求每行的和,结果是列向量。sum(X(:))表示矩阵求和 while j~=n   %%%%% 什么原理???     while s(j)==0  %% 无文字???为什么???         j=j+1;     end     k1=j;     while s(j)~=0 && j<=n-1         j=j+1;     end     k2=j-1;     if k2-k1>=round(n/6.5)         [val,num]=min(sum(d(:,[k1+5:k2-5])));         d(:,k1+num+5)=0;  % 分割     end end % 再切割 %d=qiege(d); % 切割出 7 个字符 y1=10;y2=0.25;flag=0;word1=[]; while flag==0  % flag为自定义,以便标记循环用     [m,n]=size(d);     %left=1;     wide=0;     while sum(d(:,wide+1))~=0 % 二值图像:黑色像素代表感兴趣的对象而白色像素代表背景。逻辑矩阵只包括0(显示为黑色)和1(显示为白色)         wide=wide+1;% ?wide的意义?     end     if wide<y1   % 认为是左侧干扰 为什么是10?         d(:,[1:wide])=0; % 将白色汉字前的白色弄成黑色 %       figure,imshow(d);         d=qiege(d); % 处理干扰后再次调用切割子程序     else         temp=qiege(imcrop(d,[1 1 wide m]));% imcrop函数截取图像[xmin ymin width height]         [m,n]=size(temp);         all=sum(sum(temp));         two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));         if two_thirds/all>y2 %??什么意思??             flag=1;word1=temp;   %第一个字符         end         d(:,[1:wide])=0;d=qiege(d); %?为什么又处理一次?     end end % 分割出第二个字符 [word2,d]=getword(d); % 分割出第三个字符 [word3,d]=getword(d); % 分割出第四个字符 [word4,d]=getword(d); % 分割出第五个字符 [word5,d]=getword(d); % 分割出第六个字符 [word6,d]=getword(d); % 分割出第七个字符 [word7,d]=getword(d); subplot(5,7,1),imshow(word1),title('1'); subplot(5,7,2),imshow(word2),title('2'); subplot(5,7,3),imshow(word3),title('3'); subplot(5,7,4),imshow(word4),title('4'); subplot(5,7,5),imshow(word5),title('5'); subplot(5,7,6),imshow(word6),title('6'); subplot(5,7,7),imshow(word7),title('7'); [m,n]=size(word1); % 商用系统程序中归一化大小为 40*20,此处演示 word1=imresize(word1,[40 20]);%imresize对图像做缩放处理,常用调用格式为:B=imresize(A,ntimes,method);其中method可选nearest,bilinear(双线性),bicubic,box,lanczors2,lanczors3等 word2=imresize(word2,[40 20]); word3=imresize(word3,[40 20]); word4=imresize(word4,[40 20]); word5=imresize(word5,[40 20]); word6=imresize(word6,[40 20]); word7=imresize(word7,[40 20]); subplot(5,7,15),imshow(word1),title('11'); subplot(5,7,16),imshow(word2),title('22'); subplot(5,7,17),imshow(word3),title('33'); subplot(5,7,18),imshow(word4),title('44'); subplot(5,7,19),imshow(word5),title('55'); subplot(5,7,20),imshow(word6),title('66'); subplot(5,7,21),imshow(word7),title('77'); imwrite(word1,'1.jpg'); % 创建七位车牌字符图像 imwrite(word2,'2.jpg'); imwrite(word3,'3.jpg'); imwrite(word4,'4.jpg'); imwrite(word5,'5.jpg'); imwrite(word6,'6.jpg'); imwrite(word7,'7.jpg'); liccode=char(['0':'9' 'A':'Z' '京辽桂陕苏渝浙']);  %建立自动识别字符代码表;'京津沪渝港澳吉辽鲁豫冀鄂湘晋青皖苏赣浙闽粤琼台陕甘云川贵黑藏蒙桂新宁' % 编号:0-9分别为 1-10;A-Z分别为 11-36; % 京  津  沪  渝  港  澳  吉  辽  鲁  豫  冀  鄂  湘  晋  青  皖  苏 % 赣  浙  闽  粤  琼  台  陕  甘  云  川  贵  黑  藏  蒙  桂  新  宁 % 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59  % 60 61 62 63 64 65 66 67 68 69 70 SubBw2=zeros(40,20); % 创建一个40行20列的0矩阵 l=1; for I=1:7       ii=int2str(I); % 将整型数据转换为字符串型数据      t=imread([ii,'.jpg']);% 依次读入七位车牌字符       SegBw2=imresize(t,[40 20],'nearest'); % 对读入的字符进行缩放         if I==1                 % 第一位汉字识别             kmin=37;             kmax=43;         elseif I==2             % 第二位 A~Z 字母识别             kmin=11;             kmax=36;         else            % 第三位以后是字母或数字识别 ;即I>=3             kmin=1;             kmax=36;                 end                  for k2=kmin:kmax             fname=strcat('字符模板\',liccode(k2),'.jpg'); % strcat函数:连接字符串             SamBw2 = imread(fname);             for  i=1:40                 for j=1:20                     SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);                 end             end            % 以上相当于两幅图相减得到第三幅图 进行匹配             Dmax=0; % 与模板不同的点个数             for k1=1:40                 for l1=1:20                     if  ( SubBw2(k1,l1) > 10 || SubBw2(k1,l1) < -10 ) % "|"/"||" 或操作 (>2 15)20以上无区别                         Dmax=Dmax+1;                     end                 end             end             Error(k2)=Dmax; % 记录下字符与模板k2不同的点个数         end               Error1=Error(kmin:kmax);         MinError=min(Error1); % 差别最小的         findc=find(Error1==MinError); % 找出差别最小的模板         Code(l)=liccode(findc(1)+kmin-1); % 此处用2*l-1且后面的2*l=' ',第隔一空格输出一个字符         Code(3)=' ';Code(4)=' ';         l=l+1;         if  l==3;% 后五位与前两位字符隔开             l=l+2;         end end figure(10),subplot(5,7,1:7),imshow(dw),title('第一步:车牌定位'), xlabel({'第二步:车牌分割'}); %'', subplot(6,7,15),imshow(word1); subplot(6,7,16),imshow(word2); subplot(6,7,17),imshow(word3); subplot(6,7,18),imshow(word4); subplot(6,7,19),imshow(word5); subplot(6,7,20),imshow(word6); subplot(6,7,21),imshow(word7); subplot(6,7,22:42),imshow('dw.jpg');% xlabel(['第三步:识别结果为: ', Code],'Color','b'); 19
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服