数字图像处理技术大作业报告《车牌图像字符分割》.docx

上传人:暗伤 文档编号:96593253 上传时间:2024-01-15 格式:DOCX 页数:22 大小:549.36KB
返回 下载 相关 举报
数字图像处理技术大作业报告《车牌图像字符分割》.docx_第1页
第1页 / 共22页
数字图像处理技术大作业报告《车牌图像字符分割》.docx_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《数字图像处理技术大作业报告《车牌图像字符分割》.docx》由会员分享,可在线阅读,更多相关《数字图像处理技术大作业报告《车牌图像字符分割》.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数字图像处理技术大作业报告车牌图像字符分割目 录1 课题任务及要求31.1 任务31.2 要求31.3 任务32 第I类图片处理42.1 第一种方法42.2 第二种方法52.3关键代码73 第II类图片处理93.1 第一种方法93.2 第二种方法103.3 第三种方法113.3关键代码124 第III类图片处理164.1 第一种方法164.2 关键代码175 心得体会191 课题任务及要求1.1任务使用MATLAB从提供的车牌图像中完成至少10幅图像的车牌字符分割1.2要求成绩为中者至少完成II类文件夹中3幅图像的分割;成绩为良者至少完成II类文件夹中4幅图像的分割;成绩为优者除了完成II类文

2、件夹中4幅图像的分割外,还需完成III类文件夹中1幅图像的分割;1.3评价优:各字符完整,字符彼此及字符与其它分割物无粘连,车牌区域除字符外其它分割物少或者无。良:各字符完整,字符间有少许粘连,但不影响辨识。中:字符不太完整,或者车牌区域有较多非字符分割物,或者字符粘连较多。差:字符不完整或缺字符,字符粘连较多,无法完整辨识车牌。2 第I类图片处理2.1第一种方法2.1.1处理步骤A、读入原始图像B、预处理i、灰度化ii、求阈值iii、二值化C、求垂直投影D、把车牌的边缘噪声背景变为黑色 E、去除左右两边的噪声F、背景处理G、去除孤立噪声H、字符分割I、运行显示分割结果2.1.2分割效果截图A

3、、鲁JD9309号车牌如图1所示。图1 鲁JD9309号车牌分割结果B、黑G77777号车牌如图2所示。图2 黑G77777号车牌分割结果C、鲁ENB911号车牌如图3所示。图3 黑ENB911号车牌分割结果2.2第二种方法2.2.1处理步骤A、读入原始图像B、预处理i、边缘检测(Sobel算子)ii、膨胀化iii、旋转矫正iv、灰度化v、二值化vi、去除孤立噪声C、水平和垂直投影(去除车牌以外的区域)D、去掉上下边框和柳钉E、去除左右边框(投影法)F、去除字符左右背景(投影法)G、分割字符(垂直投影法)H、运行显示分割结果2.2.2分割效果截图A、川A99999号车牌如图4所示。图4 川A9

4、9999号车牌分割结果B、川R87979号车牌如图5所示。图5 川R87979号车牌分割结果2.3关键代码2.3.1 第一种方法%对车牌进行再处理,把边缘噪声背景变为黑色,便于下一步的分割以及识别for x=1:m%对图片从上往下进行扫描 count=0; for z=1:n-1 if bw(x,z)*bw(x,z+1)=0 if bw(x,z)=1 | bw(x,z+1)=1 count=count+1; end end end if count11%跳变次数小于11次(跳变就是从0到1或者从1到0) bw(x,1:n)=0; end;end%字符分割X=; %用来存放水平分割线的横坐标fl

5、ag=0;for j=1:size(bw,2) sum_y=sum(bw(:,j); if logical(sum_y)=flag %列和有变化时,记录下此列 X=X j; flag=logical(sum_y); endendfigurefor n=1:7 char=bw(:,X(2*n-1):X(2*n)-1); %进行粗分割 for i=1:size(char,1) % 这两个for循环对分割字符的上下进行裁剪 if sum(char(i,:)=0 top=i; break end end for i=1:size(char,1) if sum(char(size(char,1)-i,:

6、)=0 bottom=size(char,1)-i; break end end char=char(top:bottom,:); subplot(2,4,n);imshow(char);end2.3.2第二种方法%分割字符(垂直投影法)height, Twidth = size(I6);Cwidth = Twidth*47/409; %单一字符间距Cspace = Twidth*12/409; % 字符间距SecThspace = Twidth*34/409; % 第二个和第三个字符间距projection = sum(I6, 1);figure;for i=1:7 if i = 1 k =

7、 (floor(Twidth - Cwidth ); % 切换到最后一个字符起始列 k=k-1; else %自右向左逐列扫描 k = (floor(k - Cwidth - Cspace); % 切换字符的起始列 end %对特殊情况置一处理 if k = 0 k=1; end % 取当前字符 fprintf(第%d字符起始列的大概位置:%d n, i,k); fprintf(列投影值:%d n, projection(1, k); character = I6(:, k:ceil(k+Cwidth)+1); subplot(178-i);imshow(character); % 第二个和第

8、三个字符之间的空格特殊处理 if i = 5 k = k - SecThspace + Cspace; endend3 第II类图片处理3.1第一种方法3.1.1处理步骤A、读入原始图像B、对图像亮度调节C、图像预处理i、灰度化ii、求阈值iii、二值化iv、求垂直投影D、图像再处理i、把边缘噪声变为黑色 ii、对图像左右两边消除噪声iii、背景处理E、字符分割F、运行显示分割结果3.1.2分割效果截图A、蒙A16777号车牌如图6所示。图6 蒙A16777号车牌分割结果B、辽B57368号车牌如图7所示。 图7 辽B57368号车牌分割结果C、鄂K9M555号车牌如图8所示。图8 鄂K9M5

9、55号车牌分割结果3.2第二种方法3.2.1处理步骤A、读入原始图像B、预处理i、将RGB图像转化为灰度图像C、去除边框干扰i、去除左侧边框干扰ii、去除右侧边框干扰D、二值化 E、 形态学滤波处理F、 字符分割G、运行显示分割结果3.2.2分割效果截图A、鲁A88888号车牌如图9所示。图9 鲁A88888号车牌分割结果3.3第三种方法3.3.1处理步骤A、读入原始图像B、图像预处理i、将RGB图像转化为灰度图像ii 、二值化iii、形态学滤波处理C、去除图像顶端和低端的不感兴趣区域 D、分割字符按行累积量E、分割字符F、运行显示分割结果3.3.2分割效果截图A、晋F21696号车牌如图10

10、所示。图10 晋F21696号车牌分割结果3.4关键代码3.3.1第一种方法%对车牌进行再处理,把边缘噪声背景变为黑色,便于下一步的分割以及识别for x=1:m%对图片从上往下进行扫描 count=0; for z=1:n-1 if bw(x,z)*bw(x,z+1)=0 if bw(x,z)=1 | bw(x,z+1)=1 count=count+1; end end end if count11%跳变次数小于11次(跳变就是从0到1或者从1到0) bw(x,1:n)=0; end;end%字符分割X=; %用来存放水平分割线的横坐标flag=0;for j=1:size(bw,2) su

11、m_y=sum(bw(:,j); if logical(sum_y)=flag %列和有变化时,记录下此列 X=X j; flag=logical(sum_y); endendfigurefor n=1:7 char=bw(:,X(2*n-1):X(2*n)-1); %进行粗分割 for i=1:size(char,1) % 这两个for循环对分割字符的上下进行裁剪 if sum(char(i,:)=0 top=i; break end end for i=1:size(char,1) if sum(char(size(char,1)-i,:)=0 bottom=size(char,1)-i;

12、 break end end char=char(top:bottom,:); subplot(2,4,n);imshow(char);end3.3.2第二种方法%去除边框干扰r,s=size(CuDingWeiErZhi);%size函数的行数返回第一个输出变量,将数组的列返回到第二个输出变量YuJingDingWei=double(CuDingWeiErZhi);%;CuDingWeiErZhiX2=zeros(1,s);%产生1行s列全零数组for i=1:r for j=1:s if(YuJingDingWei(i,j)=1) X2(1,j)= X2(1,j)+1;%白色像素点统计 e

13、nd endendtemp,MaxX=max(X2);%去除左侧边框干扰g,h=size(YuJingDingWei);ZuoKuanDu=0;YouKuanDu=0;KuanDuYuZhi=5;while sum(YuJingDingWei(:,ZuoKuanDu+1)=0 ZuoKuanDu=ZuoKuanDu+1;endif ZuoKuanDuKuanDuYuZhi % 认为时左侧干扰 YuJingDingWei(:,1:ZuoKuanDu)=0;%给图像d中1到KuanDu宽度间的点赋值为零 YuJingDingWei=QieGe(YuJingDingWei); %值为零的点会被切割e

14、ndsubplot(2,2,3),imshow(YuJingDingWei),title(去除左侧边框的二值车牌图像 )%去除右边边框干扰e,f=size(YuJingDingWei);%上一步裁剪了一次,所以需要再次获取图像大小d=f;while sum(YuJingDingWei(:,d-1)=0 YouKuanDu=YouKuanDu+1; d=d-1;endif YouKuanDuKuanDuYuZhi % 认为时右侧干扰 YuJingDingWei(:,(f-YouKuanDu):f)=0;% YuJingDingWei=QieGe(YuJingDingWei); %值为零的点会被切

15、割endsubplot(2,2,4),imshow(YuJingDingWei),title(车牌二值图像)3.3.3第三种方法%去除图像顶端和底端的不感兴趣区域Y1=zeros(y1,1); for i=1:y1 for j=1:x1 if(I3(i,j,1)=1) Y1(i,1)= Y1(i,1)+1 ; end end endPy1=1;Py0=1;while (Y1(Py0,1)20)&(Py0=20)&(Py1y1) Py1=Py1+1; endI2=I2(Py0:Py1,:,:);subplot(3,2,6);imshow(I2),title(目标车牌区域); %分割字符按行积累量

16、X1=zeros(1,x1);for j=1:x1 for i=1:y1 if(I3(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end endfigure(5);plot(0:x1-1,X1),title(列 方向像素点灰度值累计和),xlabel(列值 ),ylabel(累积像素量); Px0=1;Px1=1;4 第III类图片处理4.1第一种方法4.1.1处理步骤A、读入原始图像B、图像预处理i、转化为灰度图像ii、Canny算子边缘检测iii、腐蚀图像iv、聚类、填充v、形态学滤波处理C、车牌定位i、车牌粗定位(找到行列像素累计和最大,然后同时自增和自减)1)、

17、确定车牌行的起始位置2)、确定车牌列的起始位置ii、车牌精定位(分割并裁剪车牌字符串部分)1)、对粗定位得到的车牌进行预处理2)、去除边框干扰(包括左边框和右边框)3)、最后得到形态学滤波后的车牌二值图像D、车牌字符分割E、运行显示分割结果4.1.2分割效果截图A、粤A3Y347号车牌如图11所示。图11 粤A3Y347号车牌分割结果B、云AU7526号车牌如图12所示。图12 云AU7526号车牌分割结果4.2关键代码%去除边框干扰r,s=size(CuDingWeiErZhi);%size函数的行数返回第一个输出变量,将数组的列返回到第二个输出变量YuJingDingWei=double(

18、CuDingWeiErZhi);%;CuDingWeiErZhiX2=zeros(1,s);%产生1行s列全零数组for i=1:r for j=1:s if(YuJingDingWei(i,j)=1) X2(1,j)= X2(1,j)+1;%白色像素点统计 end endendtemp,MaxX=max(X2);%去除左侧边框干扰g,h=size(YuJingDingWei);ZuoKuanDu=0;YouKuanDu=0;KuanDuYuZhi=5;while sum(YuJingDingWei(:,ZuoKuanDu+1)=0 ZuoKuanDu=ZuoKuanDu+1;endif Zu

19、oKuanDuKuanDuYuZhi % 认为时左侧干扰 YuJingDingWei(:,1:ZuoKuanDu)=0;%给图像d中1到KuanDu宽度间的点赋值为零 YuJingDingWei=QieGe(YuJingDingWei); %值为零的点会被切割endsubplot(2,2,3),imshow(YuJingDingWei),title(去除左侧边框的二值车牌图像 )%去除右边边框干扰e,f=size(YuJingDingWei);%上一步裁剪了一次,所以需要再次获取图像大小d=f;while sum(YuJingDingWei(:,d-1)=0 YouKuanDu=YouKuan

20、Du+1; d=d-1;endif YouKuanDuKuanDuYuZhi % 认为时右侧干扰 YuJingDingWei(:,(f-YouKuanDu):f)=0;% YuJingDingWei=QieGe(YuJingDingWei); %值为零的点会被切割endsubplot(2,2,4),imshow(YuJingDingWei),title(车牌二值图像)5 心得体会随着我国交通运输的不断发展,智能交通系统(Intelligent Traffic System,简称ITS)的推广变的越来越重要,而作为ITS的一个重要组成部分,车辆牌照识别系统(vehicle license pla

21、te recognition system,简称LPR)对于交通管理、治安处罚等工作的智能化起着十分重要的作用。它可广泛应用于交通流量检测,交通控制于诱导,机场,港口,小区的车辆管理,不停车自动收费,闯红灯等违章车辆监控以及车辆安全防盗等领域,具有广阔的应用前景。由于牌照是机动车辆管理的唯一标识符号,因此,车辆牌照识别系统的研究在机动车管理方面具有十分重要的实际意义通过这个实验,我已经能设计一个基于matlab的汽车牌照识别程序,能够实现车牌图像预处理,车牌定位,字符分割,最终从一幅图像中提取车牌中的字母和数字,给出图片形式的车牌号码。而且重点是确定车牌位置后的下一步任务就是进行字符切分分离出车牌号的全部字符图像。把剪切后的彩色车牌图像灰度化,然后再设置阈值进行二值化。可以使用graythresh()函数来自动找到一个合适的阈值,也可以人为设置阈值来二值化。(注意这一步不使用边缘检测,而是直接设定阈值进行二值化,第2步是因为边缘检测算子就有阈值同时把图像给二值化了,所以边缘检测后才会只有黑和白)21

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁