车牌定位分割识别程序
请简述车牌识别的工作过程。

请简述车牌识别的工作过程。
车牌识别是人工智能领域中重要的一部分,也是促进智慧停车技术发展的主要动力。
车牌识别通过触发设备、摄像设备、照明设备、图像采集设备、号码识别处理机、缴费终端等硬件设备以及车牌定位、字符分割、字符识别等软件算法来运作车牌识别过程,具体包含以下七个流程:1.图像采集:车牌识别根据车辆检测方式的不同,图像采集一般分为两种,一种是静态模式下的图像采集,通过车辆触发地感线圈、红外或雷达等装置,给相机一个触发信号,相机在接收到触发信号后会抓拍一张图像,该方法的优点是触发率高,性能稳定,缺点是需要切割地面铺设线圈,施工量大;另一种是视频模式下的图像采集,外部不需要任何触发信号,相机会实时地记录视频流图像,该方法的优点是施工方便,不需要切割地面铺设线圈,也不需要安装车检器等零部件,但其缺点也十分显著,由于算法的极限,该方案的触发率与识别率较之外设触发都要低一些。
2.预处理:车牌识别由于图像质量容易受光照、天气、相机位置等因素的影响,所以在识别车牌之前需要先对相机和图像做一些预处理,以保证得到车牌最清晰的图像。
一般会根据对现场环境和已经拍摄到的图像的分析得出结论,实现相机的自动曝光处理、自动白平衡处理、自动逆光处理、自动过爆处理等,并对图像进行噪声过滤、对比度增强、图像缩放等处理。
去噪方法有均值滤波、中值滤波和高斯滤波等;增强对比度的方法有对比度线性拉伸、直方图均衡和同态滤波器等;图像缩放的主要方法有最近邻插值法、双线性插值法和立方卷积插值法等。
3.车牌定位:车牌识别从整个图像中准确地检测出车牌区域,是车牌识别过程的一个重要步骤,如果定位失败或定位不完整,会直接导致最终识别失败。
由于复杂的图像背景,且要考虑不清晰车牌的定位,所以很容易把栅栏,广告牌等噪声当成车牌,所以如何排除这些伪车牌也是车牌定位的一个难点。
为了提高定位的准确率和提高识别速度,一般的车牌识别系统都会设计一个外部接口,让用户自己根据现场环境设置不同的识别区域。
车牌的定位与字符分割报告

车牌的定位与分割实验报告一实验目的针对交通智能系统所拍摄的汽车图片,利用设定的算法流程,完成对汽车车牌部分的定位,分割车牌部分,并完成字符的分割,以便于系统的后续分析及处理。
二实验原理详见《车牌的定位与字符分割》论文。
三概述1一般流程车牌自动识别技术大体可分为四个步骤:图像预处理、车牌定位与分割、车牌字符的分割和车牌字符识别。
而这四个步骤又可归结为两大部分:车牌分割和车牌字符识别。
图1-1为车牌自动识别技术的一般流程图。
2本实验的流程(1)图像预处理:图像去噪(2)车牌的定位:垂直边缘检测(多次)形态学处理的粗定位合并邻近区域结合车牌先验知识的精确定位(3)车牌预处理:车牌直方图均衡化倾斜校正判定(蓝底白字或者黄底黑字)归一化、二值化(4)字符的分割:垂直投影取分割阈值确定各个字符的左右界限(结合字符宽度、间隔等先验知识)分割字符四实验过程4.1图像预处理4.1.1图像去噪一般的去噪方法有:空间域上的均值滤波和中值滤波;频率域上的巴特沃斯滤波器。
图4-1是各滤波器处理椒盐噪声的效果。
a.被椒盐噪声污染的图片 b.均值滤波的效果图 c.中值滤波的效果图 d.BLPF的效果图图4-1 各滤波器处理椒盐噪声的仿真可见,中值滤波对椒盐噪声的处理效果极好,而一般所拍摄的图片上最多的便是孤立的污点,所以此处以中值滤波为主进行去噪。
图4-2是采用中值滤波处理实际汽车图片的效果。
a.原始图像b.灰度图像c.中值滤波后的图像图4-2 中值滤波处理实际汽车图片的效果很显然,经过中值滤波后去除了原图上的部分污点。
4.1.2图像复原由于通常情况下都不知道点扩展函数,所以我们采用基于盲解卷积的图像复原策略。
图4-3~4-7图是函数进行盲解卷积的实验结果,其中图4-3是图像cameraman 的模糊图像。
图4-3 模糊图像在盲解卷积处理中,选择适当大小的矩阵对恢复图像的效果很重要。
PSF的大小比PSF的值更重要,所以首先指定一个有代表性的全1矩阵作为初始PSF。
简述车牌识别流程

简述车牌识别流程
车牌识别流程
步骤1:图像预处理
在车牌识别过程中,第一步是对原始图像进行预处理,以确保图像的可靠性与可理解性。
预处理通常包括对图像进行灰度化,去除噪声,二值化和边缘检测等操作,以提高图像的质量,使图像更加易于处理。
步骤2:车牌定位
在车牌识别中,定位是一个重要的步骤,目的是确定图像中车牌的位置。
系统根据车牌的特征,在图像中进行定位检测,以确定车牌的位置,从而将图像分割为车牌区域。
步骤3:车牌分割
接下来,根据定位的结果,系统将图像分割为车牌区域,以便之后的字符识别。
步骤4:字符识别
在车牌识别流程中,最后一步是字符识别,它的目的是从车牌区域中识别出车牌字符。
系统会使用一些机器学习算法,如支持向量机,深度学习等来辨别字符,以识别出车牌字符。
步骤5:结果输出
最终,系统会将识别出的车牌字符输出,作为车牌识别的结果,如“ABC123”等。
车牌识别的方法

车牌识别的方法车牌识别系统(Vehicle License Plate Recognition,VLPR)是计算机视频图像识别技术在车辆牌照识别中的一种应用,能够将运动中的车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)从复杂背景中提取并识别出来,通过车牌提取、图像预处理、特征提取、车牌字符识别等技术,识别车辆牌号、颜色等信息,目前最新的技术水平为字母和数字的识别率均可达到99%以上。
车牌识别是现代智能交通系统中的重要组成部分之一,应用十分广泛。
它以数字图像处理、模式识别、计算机视觉等技术为基础,对摄像机所拍摄的车辆图像或者视频序列进行分析,得到每一辆汽车唯一的车牌号码,从而完成识别过程。
当前,车牌识别技术已经广泛应用于停车管理、称重系统、静态交通车辆管理、公路治超、公路稽查、车辆调度、车辆检测等各种场合,对于维护交通安全和城市治安,防止交通堵塞,实现交通自动化管理有着现实的意义。
目前车牌识别技术已经开始成熟,国内外厂商推出了一批性能优异的产品,开始在交通、公安、停车场、安防、小区、充电站、加油站、车服门店等许多领域得到了成功的应用。
目前的车牌识别产品除自动识别车牌号码外,有些产品比如深睛S-VX系列车牌识别一体机还能同时识别车牌颜色,车身颜色,车辆品牌及年代,完成相关图像的保存和记录。
根据应用条件和要求的不同,车牌识别产品也有多种类型。
从实现模式来说,分为软识别和硬识别两种。
软识别即车牌识别软件,基本是安装的PC端、服务器端,前端硬件设备采集视频或抓拍图片,传输到后端带有识别软件识别端进行识别,这种技术多数应用在前期模拟相机时代停车场,高速公路,电子警察,但这种方式针对分析端要求较高,如中间传输出现中断或者分析端出现重启情况,不可实时进行识别。
特别是在一些小型场景,比如停车场,加油站,新能源电动车充电站内,PC在岗亭或者机房,经常由于温度、潮湿等条件影响,会存在不稳定情况;另外在特定场景,由于天气、复杂环境、角度影响,识别率迟迟达不到很高标准,所以这项已经很少使用。
【车牌识别】-车牌中字符分割代码详解

【车牌识别】-车牌中字符分割代码详解车牌识别项⽬中,关于字符分割的实现:思路: 1. 读取图⽚,使⽤ cv2 。
2. 将 BGR 图像转为灰度图,使⽤ cv2.cvtColor( img,cv2.COLOR_RGB2GRAY) 函数。
3. 车牌原图尺⼨(170, 722) ,使⽤阈值处理灰度图,将像素值⼤于175的像素点的像素设置为 255 ,不⼤于175的像素点的像素设置为0 。
4.观察车牌中字符,可以看到每个字符块中的每列像素值的和都不为 0 ,这⾥做了假设,将左右结构的省份简写的字也看作是由连续相邻的列组成的,如 “ 桂 ” 。
5. 对于经过阈值处理的车牌中的字符进⾏按列求像素值的和,如果⼀列像素值的和为 0,则表明该列不含有字符为空⽩区域。
反之,则该列属于字符中的⼀列。
判断直到⼜出现⼀列像素点的值的和为0,则这这两列中间的列构成⼀个字符,保存到字典character_dict 中,字典的 key 值为第⼏个字符 ( 下标从0开始 ),字典的value值为起始列的下标和终⽌列的下标。
character_dict 是字典,每⼀个元素中的value 是⼀个列表记录了夹住⼀个字符的起始列下标和终⽌列下标。
6. 之后再对字符进⾏填充,填充为170*170⼤⼩的灰度图(第三个字符为⼀个点,不需要处理,跳过即可。
有可能列数不⾜170,这影响不⼤)。
7. 对填充之后的字符进⾏resize,处理成20*20的灰度图,然后对字符分别进⾏存储。
代码实现:1### 对车牌图⽚进⾏处理,分割出车牌中的每⼀个字符并保存2# 在本地读取图⽚的时候,如果路径中包含中⽂,会导致读取失败。
34import cv25import paddle6import numpy as np7import matplotlib.pyplot as plt8#以下两⾏实现了在plt画图时,可以输出中⽂字符9 plt.rcParams['font.sans-serif']=['SimHei']10 plt.rcParams['axes.unicode_minus'] = False111213# cv2.imread() 读进来直接是BGR 格式数据,数值范围在 0~255 。
车牌识别

一、车牌识别技术:车牌识别技术(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)进行处理的技术。
车牌识别是现代智能交通系统中的重要组成部分之一,应用十分广泛。
它以数字图像处理、模式识别、计算机视觉等技术为基础,对摄像机所拍摄的车辆图像或者视频序列进行分析,得到每一辆汽车唯一的车牌号码,从而完成识别过程。
二、车牌识别流程:车牌识别实验台主要包括四部分:前端的抓拍摄像机(负责抓车牌和读车牌)、地感线圈(负责触发摄像机抓车牌),车辆检测器,后端的对比软件(即车牌定位)和数据库。
1、地感线圈检测原理:地感线圈检测车辆的基本原理如下图所示:地感线圈采用单条多股铜线埋设在车道上的切割槽中,安装时采用螺旋形绕法缠绕4~6圈,两线合并后采用麻花形绕法。
地面切槽长度以车道宽度为准,宽度控制在30~40cm左右。
车辆检测的核心器件是与地感线圈相连接的车辆感应器。
车辆感应器采用先进的锁相环技术。
当线圈上面没有车辆时,车辆感应器和地感线圈之间产生一个平衡点,车辆感应器输出一个低电平到CPU;当地感线圈上面有车辆时,地感线圈形成的磁场分布状况发生改变,车辆感应器输出高电平到CPU。
检测系统通过对两个信号进行检测判断,即可得到所需的车辆检测信号。
2、车牌定位模块:车牌定位识别系统是在软硬件的结构上,利用先进的图像处理模式识别等技术,对采集到的汽车图像进行处理,进而得到相应的车牌图像,以完成车牌的自动识别功能,如下图所示,其主要的两个子系统是车牌的精确定位、分割系统,车牌字符的分割、识别系统.2.1图像预处理车牌的准确定位是识别的关键,当利用摄像机采集图像时,由于角度、光照等影响,采集到的图像信息往往很复杂,质量不高,为了精确的实现定位,就必须对图像进行预处理.汽车图像预处理包括:彩色图像的灰度化、二值化,其目的是为是减少原始图像中的复杂信息,使得车牌定位算法更为简单,速度更快。
车牌识别程序

close all
clc % 清空命令窗口的所有输入和输出,类似于清屏
%自动弹出提示框读入图像 [filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');% 直接自动读入%
%file=strcat(,filename); %strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名
PY1=PY1-1;
end
PY2=MaxY; % 以下为找车牌Y方向最大值 ???难道最大值不是MaxY????
while ((Blue_y(PY2,1)>=5)&&(PY2<y))
PY2=PY2+1;
end
% IY=I(PY1:PY2,:,:);
% '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即为单个像素??
figure('name','边缘检测'),imshow(I2);title('robert算子边缘检测')
se=[1;1;1];
I3=imerode(I2,se);% 腐蚀Imerode(X,SE).其中X是待处理的图像,SE是结构元素对象
汽车牌照定位与字符分割的研究及实现

1.2.1 车牌定位技术研究现状及发展趋势
车牌定位技术是 LPR 系统研究的重点和难点。采集车辆图像过程中一般都有
1
汽车牌照定位与字符分割的研究及实现
各种背景干扰,能够正确分割字符的前提是从图像中准确地分割出牌照区域,这 也是 LPR 系统能否在实际中应用的基础。 目前的车牌定位算法中,主要是分析车牌所共有的部分特征,根据这些特征 来确定车牌区域的位置。车牌几何形状特征及相应的分析方法主要有[2-8]: (1)灰度变化特征:水平/垂直扫描时,牌照区域的像素灰度值按照一定的规 律进行波动;(2)颜色特征:原始车牌区域内部颜色和外部颜色差异的特征;(3) 投影特征:对车辆图像的水平/垂直扫描后其投影直方图中,牌照所对应的区域具 有一定规律的峰谷分布;(4)边缘特征:牌照区域有许多的边缘信息,使用相应的 算子将边缘信息提取出后,再通过边缘投影直方图来确定边缘的信息;(5)几何特 征:主要有车牌的长度、宽度以及长宽比例在一定的范围之内,或者可以通过牌照 的面积在一定的范围之内。利用以上这些特征均可以确定车牌的位置。 目前,车辆牌照的定位方法有基于彩色图像牌照区域字符和背景的颜色差异 特征进行定位,也有基于灰度图像牌照区域字符几何纹理特征进行定位,还有其 它结合了牌照区的颜色差异和字符纹理两种特征的方法定位,另外还有的是基于 数学形态学、神经网络、遗传算法、灰度聚类等牌照定位方法[9]。
作者签名: 导师签名:
日期: 日期:
年 年
月 月
日 日
中南民族大学硕士学位论文
第1章
1.1 问题的提出
绪论
车牌识别技术(License Plate Recognition, LPR )是智能交通管理系统的 重要组成部分,主要用于识别车牌号码。 LPR 技术在实际生活中主要应用于高速 公路实现无人收费功能、道路行车的流量监控、交通违规车辆的监控等。特别是 在各种场合实现无人收费功能的系统中,为了提高车辆的运行效率, LPR 技术将 代替人工的管理方式实现无人自动管理的功能, 因此,对 LPR 技术的研究和系统的 开发具有重要的现实意义和和实用价值。 车牌定位、字符分割、字符识别是 LPR 系统的三大关键技术。同时也是车牌 本身的几何形状特征与图像处理技术[1]的很好结合,车牌定位与字符分割在 LPR 系统中用到的数学知识主要有数学形态学、神经网络、小波分析等。对车牌定位 与字符分割的研究主要包括:图像预处理、车牌定位、车牌倾斜校正、车牌字符 分割及字符分割结果输出等。如图 1.1 所示为系统的流程框图:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附录A%主函数function [d]=main(jpg)close allclcI=imread('car1.jpg');figure(1),imshow(I);title('原图')I1=rgb2gray(I); %将RGB图形或色图矩阵转换成灰度图figure(2),subplot(1,2,1),imshow(I1);title('灰度图');figure(2),subplot(1,2,2),imhist(I1);title('灰度图直方图');I2=edge(I1,'robert',0.15,'both');%提取I1的边缘,利用robert算子figure(3),imshow(I2);title('robert算子边缘检测')se=[1;1;1]; %结构矩阵,用于图像的腐蚀I3=imerode(I2,se);%以图像I2和结构元素SE为参数调用imerode函数进行腐蚀操作figure(4),imshow(I3);title('腐蚀后图像');se=strel('rectangle',[25,25]);I4=imclose(I3,se); %形态学中的闭运算,se为结构元素figure(5),imshow(I4);title('平滑图像的轮廓');I5=bwareaopen(I4,2000);figure(6),imshow(I5);title('从对象中移除小对象');[y,x,z]=size(I5); %读取I5的大小,行列页myI=double(I5); %将I5元素转为double型tic %计时开始Blue_y=zeros(y,1); %给蓝色像素个数赋初始值0for i=1:yfor j=1:x % 这两行是循环,先行,再列if(myI(i,j,1)==1) % 如果I5第一页中的元素为1的话,则是蓝色像素Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendend[temp MaxY]=max(Blue_y);%Y方向车牌区域确定,temp为最大值,MaxY为最大值位置PY1=MaxY; %最大值的位置赋给PY1while ((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;end % 这个循环是在Y方向,向上求离最大值最近的像素小于5的点的位置,存在PY1中PY2=MaxY;while ((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;end %这个循环是在Y方向,向下求离最大值最近的像素小于5的点的位置,存在PY2中IY=I(PY1:PY2,:,:); %截取PY1和PY2之间的像素矩阵,X方向暂不限制。
%因为车牌是个矩形,%是原图像中矩阵的一部分,所以要将其提取出来,%先确定Y方向上取值的区间,再确定X方向。
%%%%%% X方向%%%%%%%%%Blue_x=zeros(1,x);%进一步确定x方向的车牌区域for j=1:xfor i=PY1:PY2 %简单起见,只取PY1到PY2,减少计算量if(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;end %这里和求Y方向的方法一样PX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:); %车牌矩阵存在变量dw中t=toc; % 计时结束,输出运行时间figure(7),subplot(1,2,1),imshow(IY),title('行方向合理区域');figure(7),subplot(1,2,2),imshow(dw),title('定位剪切后的彩色车牌图像')imwrite(dw,'dw.jpg');[filename,filepath]=uigetfile('dw.jpg','输入一个定位裁剪后的车牌图像');jpg=strcat(filepath,filename);a=imread('dw.jpg');b=rgb2gray(a);imwrite(b,'1.车牌灰度图像.jpg');figure(8);subplot(3,2,1),imshow(b),title('1.车牌灰度图像')g_max=double(max(max(b)));g_min=double(min(min(b)));T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值[m,n]=size(b);d=(double(b)>=T); % d:二值图像imwrite(d,'2.车牌二值图像.jpg');figure(8);subplot(3,2,2),imshow(d),title('2.车牌二值图像')figure(8),subplot(3,2,3),imshow(d),title('3.均值滤波前')% 滤波h=fspecial('average',3);d=im2bw(round(filter2(h,d)));imwrite(d,'4.均值滤波后.jpg');figure(8),subplot(3,2,4),imshow(d),title('4.均值滤波后')% 某些图像进行操作% 膨胀或腐蚀% se=strel('square',3); % 使用一个3X3的正方形结果元素对象对创建的图像进行膨胀% 'line'/'diamond'/'ball'...se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵[m,n]=size(d);if bwarea(d)/m/n>=0.365d=imerode(d,se);elseif bwarea(d)/m/n<=0.235d=imdilate(d,se);endimwrite(d,'5.膨胀或腐蚀处理后.jpg');figure(8),subplot(3,2,5),imshow(d),title('5.膨胀或腐蚀处理后')% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割d=qiege(d);[m,n]=size(d);figure,subplot(2,1,1),imshow(d),title(n)k1=1;k2=1;s=sum(d);j=1;while j~=nwhile s(j)==0j=j+1;endk1=j;while s(j)~=0 && j<=n-1j=j+1;endk2=j-1;if k2-k1>=round(n/6.5)[val,num]=min(sum(d(:,[k1+5:k2-5])));d(:,k1+num+5)=0; % 分割endend% 再切割d=qiege(d);% 切割出7 个字符y1=10;y2=0.25;flag=0;word1=[];while flag==0[m,n]=size(d);left=1;wide=0;while sum(d(:,wide+1))~=0wide=wide+1;endif wide<y1 % 认为是左侧干扰d(:,[1:wide])=0;d=qiege(d);elsetemp=qiege(imcrop(d,[1 1 wide m]));[m,n]=size(temp);all=sum(sum(temp));two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:)));if two_thirds/all>y2flag=1;word1=temp; % WORD 1endd(:,[1:wide])=0;d=qiege(d);endend% 分割出第二个字符[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]);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('1');subplot(5,7,16),imshow(word2),title('2');subplot(5,7,17),imshow(word3),title('3');subplot(5,7,18),imshow(word4),title('4');subplot(5,7,19),imshow(word5),title('5');subplot(5,7,20),imshow(word6),title('6');subplot(5,7,21),imshow(word7),title('7');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' '苏豫陕鲁']); %建立自动识别字符代码表SubBw2=zeros(40,20);l=1;for I=1:7ii=int2str(I);t=imread([ii,'.jpg']);SegBw2=imresize(t,[40 20],'nearest');if l==1 %第一位汉字识别kmin=37;kmax=40;elseif l==2 %第二位A~Z 字母识别kmin=11;kmax=36;else l>=3 %第三位以后是字母或数字识别kmin=1;kmax=36;endfor k2=kmin:kmaxfname=strcat('字符模板\',liccode(k2),'.jpg');SamBw2 = imread(fname);for i=1:40for j=1:20SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);endend% 以上相当于两幅图相减得到第三幅图Dmax=0;for k1=1:40for l1=1:20if ( SubBw2(k1,l1) > 0 | SubBw2(k1,l1) <0 )Dmax=Dmax+1;endendendError(k2)=Dmax;endError1=Error(kmin:kmax);MinError=min(Error1);findc=find(Error1==MinError);Code(l*2-1)=liccode(findc(1)+kmin-1);Code(l*2)=' ';l=l+1;endfigure(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');。