




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字图像处理课程设计车牌处理姓名:学号:一、设计目的利用matlab实现车牌识别系统,熟悉matlab应用软件的基础知识,了解了基本程序设计方法,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、高效的贯穿到实践中来,避免理论与实践的脱离,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论基础,有助于自身综合能力的提高。二、设计的内容学习matlab程序设计,利用matlab函数功能,设计和实现通过设计一个车牌识别系统。车牌识别系统的基本工作原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进行预处理,再对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后将其逐个与创建的字符模板中的字符进行匹配,匹配成功则输出,最终匹配结束则输出则为车牌号码的数字。三、程序代码clear all;close all;clc;ic,map=imread(e:car.jpg);figure;imshow(ic);title(图1 彩色车牌);igray=rgb2gray(ic);figure;imshow(igray);title(图2 灰度车牌);i2bw=im2bw(igray,0.3);figure;imshow(i2bw);title(图3 二值图像); bw=edge(igray,sobel);figure;imshow(bw);title(图4 边沿检测); 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);figure;imshow(b0);title(图5 边沿增强);se=ones(2,50);b1=imdilate(b0,se);figure;imshow(b1);title(图6 第一次膨胀);b2=imerode(b1,se);figure;imshow(b2);title(图7 第一次腐蚀);se=ones(15,2);b3=imdilate(b2,se);figure;imshow(b3);title(图8 第二次膨胀);b4=imerode(b3,se);figure;imshow(b4);title(图9 第二次腐蚀);se=ones(10,2);b5=imdilate(b4,se);figure;imshow(b5);title(图10 第三次膨胀);b6=imerode(b5,se);figure;imshow(b6);title(图11 第三次腐蚀); b,l=bwboundaries(b6,4); figure; imshow(label2rgb(l,jet,.5 .5 .5); hold on for k=1;length(b) boundary=bk; plot(boundary(:,2),boundary(:,1),w,linewidth,2) end stats=regionprops(l,area,centroid); for k=1:length(b) boundary=bk; delta_sq=diff(boundary).2; perimeter=sum(sqrt(sum(delta_sq,2); area=stats(k).area; metric=27*area/perimeter2; metric_string=sprintf(%2.2f,metric); if metric=0.85&metric1000 centroid=stats(k).centroid; plot(centroid(1),centroid(2),ko); goalboundary=boundary; s=min(goalboundary,1); e=max(goalboundary,1); goal=imcrop(i2bw,s(2) s(1) e(2)-s(2) e(1)-s(1); end text(boundary(1,2)-35,boundary(1,1)+13,metric_string,color,g,fontsize,14,fontweight,bold); end goal=goal; figure; imshow(goal); title(检测出的车牌); %车牌识别%裁剪goal=my_imtrim(goal);figure;imshow(goal); title(裁剪后的车牌区域);%分割w1,w2,w3,w4,w5,w6=my_cut(goal);figure;subplot(2,6,1); imshow(w1);subplot(2,6,2); imshow(w2);subplot(2,6,3); imshow(w3);subplot(2,6,4); imshow(w4);subplot(2,6,5); imshow(w5);subplot(2,6,6); imshow(w6);w1,w2,w3,w4,w5,w6=my_norm(w1,w2,w3,w4,w5,w6,40,20);subplot(2,6,7); imshow(w1);subplot(2,6,8); imshow(w2);subplot(2,6,9); imshow(w3);subplot(2,6,10); imshow(w4);subplot(2,6,11); imshow(w5);subplot(2,6,12); imshow(w6);% fname=strcat(d:std_test_imagesphoto,d,.jpg);% t1,map=imread(fname);% fname=strcat(d:std_test_imagesphoto,o,.jpg);% t2,map=imread(fname);% corr2(w2,t1),corr2(w2,t2)lcode=char(a:z,unknown);temp=;w=w1,w2,w3,w4,w5,w6;for k=1:26 fname=strcat(e:photo,lcode(k),.jpg); t,map=imread(fname); temp=temp,t;endnum=strcat(车牌号为:);for i=1:6 sample=w(:,20*(i-1)+1:20*(i-1)+20); flag=27; rel=-1; for j=1:26 templet=temp(:,20*(j-1)+1:20*(j-1)+20); if corr2(templet,sample)rel rel=corr2(templet,sample); flag=j; end end num=strcat(num,32,lcode(flag);endnum figureimshow(ic)title(num) function word,result=getword(d)word=;flag=0;y1=8;y2=0.5;while flag=0 m,n=size(d); wide=0;while sum(d(:,wide+1)=0&wide=n-2 wide=wide+1;endtemp=qiege(imcrop(d,1 1 wide m);m1,n1=size(temp);if widey2 d(:,1:wide)=0; if sum(sum(d)=0 d=qiege(d);%切割出最小范围? else word=; flag=1; endelse word=qiege(imcrop(d,1 1 wide m); d(:,1:wide)=0; if sum(sum(d)=0 d=qiege(d); flag=1; else d=; endendendresult=d;function w1,w2,w3,w4,w5,w6 = my_cut( im )%将裁剪后的图像分割为6个字符% 提取第一个字符m,n=size(im);left=1;right=1;while sum(im(:,right)0 & rightn right=right+1;endw1=imcrop(im,left,1,right-left-1,m);% 提取第二个字符while sum(im(:,right)=0 & right0 & rightn right=right+1;endw2=imcrop(im,left,1,right-left-1,m);% 提取第三个字符while sum(im(:,right)=0 & right0 & rightn right=right+1;endw3=imcrop(im,left,1,right-left-1,m);% 提取第四个字符while sum(im(:,right)=0 & right0 & rightn right=right+1;endw4=imcrop(im,left,1,right-left-1,m);% 提取第五个字符while sum(im(:,right)=0 & right0 & rightn right=right+1;endw5=imcrop(im,left,1,right-left-1,m);% 提取第六个字符while sum(im(:,right)=0 & right0 & rightm/5 & leftm/5 & right1 right=right-1;endim=imcrop(im,left 1 right-left m);% 第二次裁剪m,n=size(im);top=1;bottom=m;while sum(im(top,:)0 & top0 & bottom1 bottom=bottom-1;endim=imcrop(im,1 top n bottom-top);% 第三次裁剪m,n=size(im);top=1;bottom=m;left=1;right=n;while sum(im(top,:)=0 & top1 bottom=bottom-1;endwhile sum(im(:,left)=0 & left1 right=right-1;endgoal=imcrop(im,left,top,right-left,bottom-top);endfunction w1,w2,w3,w4,w5,w6 = my_norm(w1,w2,w3,w4,w5,w6,x)%将提取出的字符统一大小w1=imresize(w1,x);w2=imresize(w2,x);w3=imresize(w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法典物权编培训课件
- 《ISO 37001-2025 反贿赂管理体系要求及使用指南》专业深度解读和应用培训指导材料之1:2范围+3术语和定义(2025A1)(可编辑!)
- 现代物流知识培训课程课件
- 民法典担保法课件
- 专题突破:圆锥曲线定值问题十三大题型(学生版)
- 寻光而行抗疫题目及答案
- 2025年住建局建筑工程施工现场安全防护合同范本
- 广西行政执法面试考试题库及答案
- 广西党建考试试题及答案
- 2026届江苏省淮安市田家炳中学化学高一第一学期期末检测试题含解析
- 旅客运输心理学PPT完整全套教学课件
- 医院免疫检验报告(性激素6项)
- 消失模白区岗位操作规程
- 初高中语文语法知识衔接课-短语句子
- 再生障碍性贫血诊疗和治疗我国专家共识
- 表单-公司董监高、股东、核心技术人员调查表(上市或尽调使用)
- 杭汽12MW背压机组运行规程
- 小学综合教研组的工作计划PPT模板下载
- GB/T 7588.1-2020电梯制造与安装安全规范第1部分:乘客电梯和载货电梯
- GB/T 3406-2010石油甲苯
- GB/T 152.2-2014紧固件沉头螺钉用沉孔
评论
0/150
提交评论