




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于Matlab的车牌定位与分割经典算法I=imread('car.jpg'); %读取图像figure(); subplot(3,2,1),imshow(I), title('原始图像');I1=rgb2gray(I);%转化为灰度图像subplot(3,2,2),imshow(I1),title('灰度图像');I2=edge(I1,'robert',0.09,'both');%采用robert算子进行边缘检测subplot(3,2,3),imshow(I2),title('边缘检测后图像');
2、se=1;1;1; %线型结构元素 I3=imerode(I2,se); %腐蚀图像subplot(3,2,4),imshow(I3),title('腐蚀后边缘图像');se=strel('rectangle',25,25); 矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像subplot(3,2,5),imshow(I4),title('填充后图像');I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I5),title('形态滤波后图像
3、9;);y,x,z=size(I5);I6=double(I5); Y1=zeros(y,1); for i=1:y for j=1:x if(I6(i,j,1)=1) Y1(i,1)= Y1(i,1)+1; end end end temp MaxY=max(Y1); figure(); subplot(3,2,1),plot(0:y-1,Y1),title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素'); %求的车牌的行起始位置和终止位置 PY1=MaxY; while (Y1(PY1,1)>=50)
4、&&(PY1>1) PY1=PY1-1; end PY2=MaxY; while (Y1(PY2,1)>=50)&&(PY2<y) PY2=PY2+1; end IY=I(PY1:PY2,:,:); X1=zeros(1,x); for j=1:x for i=PY1:PY2 if(I6(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end end subplot(3,2,2),plot(0:x-1,X1),title('列方向像素点灰度值累计和'),xlabel('列值'),ylabel(
5、'像数');%求的车牌的列起始位置和终止位置PX1=1; while (X1(1,PX1)<3)&&(PX1<x) PX1=PX1+1; end PX2=x; while (X1(1,PX2)<3)&&(PX2>PX1) PX2=PX2-1; end PX1=PX1-1; PX2=PX2+1; %分割出车牌图像%dw=I(PY1:PY2,PX1:PX2,:); subplot(3,2,3),imshow(dw),title('定位剪切后的彩色车牌图像')4.2 车牌字符分割确定车牌位置后下一步的任务就是进行
6、字符切分分离出车牌号码的全部字符图像。if isrgb(I) I1 = rgb2gray(I); %将RGB图像转化为灰度图像else I1=I; endg_max=double(max(max(I1);g_min=double(min(min(I1);T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值m,n=size(I1);% d:二值图像%h=graythresh(I1);I1=im2bw(I1,T/256);subplot(3,2,4);imshow(I1),title('二值化车牌图像');I2=bwareaopen(I1,20);
7、subplot(3,2,5);imshow(I2),title('形态学滤波后的二值化图像');y1,x1,z1=size(I2);I3=double(I2);TT=1;%去除图像顶端和底端的不感兴趣区域%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<y1) Py0=Py0+1;endPy1=Py0; while(Y1(Py1,1)>=20)&
8、amp;&(Py1<y1) Py1=Py1+1; endI2=I2(Py0:Py1,:,:);subplot(3,2,6);imshow(I2),title('目标车牌区域');% 分割字符按行积累量%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('累计像素量')
9、;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=I2(:,Px0:Px1,:); switch strcat('Z',num2str(i) case 'Z1' PIN0=Z; case 'Z2' PIN1=Z; case 'Z3' P
10、IN2=Z; case 'Z4' PIN3=Z; case 'Z5' PIN4=Z; case 'Z6' PIN5=Z; otherwise PIN6=Z; end figure(3); subplot(1,7,i); imshow(Z); Px0=Px1;Endfunction inpt = pretreatment(I)%YUCHULI Summary of this function goes here% Detailed explanation goes hereif isrgb(I) I1 = rgb2gray(I);else I1=I
11、;endI1=imresize(I1,50 20);%将图片统一划为50*20大小I1=im2bw(I1,0.9);m,n=size(I1);inpt=zeros(1,m*n);%将图像按列转换成一个行向量for j=1:n for i=1:m inpt(1,m*(j-1)+i)=I1(i,j); endend%神经网络进行识别。close all;clear all;%归一化训练样本%I0=pretreatment(imread('0.jpg');I1=pretreatment(imread('1.jpg');I2=pretreatment(imread(
12、39;2.jpg');I3=pretreatment(imread('3.jpg');I4=pretreatment(imread('4.jpg');I5=pretreatment(imread('5.jpg');I6=pretreatment(imread('6.jpg');I7=pretreatment(imread('7.jpg');I8=pretreatment(imread('8.jpg');I9=pretreatment(imread('9.jpg');I10=p
13、retreatment(imread('A.jpg');I11=pretreatment(imread('C.jpg');I12=pretreatment(imread('G.jpg');I13=pretreatment(imread('L.jpg');I14=pretreatment(imread('M.jpg');I15=pretreatment(imread('R.jpg');I16=pretreatment(imread('H.jpg');I17=pretreatment(i
14、mread('N.jpg');P=I0',I1',I2',I3',I4',I5',I6',I7',I8',I9',I10',I11',I12',I13',I14',I15',I16',I17'%输出样本%T=eye(18,18);%bp神经网络参数设置net=newff(minmax(P),1000,32,18,'logsig','logsig','logsig','trainrp
15、');net.inputWeights1,1.initFcn ='randnr'net.layerWeights2,1.initFcn ='randnr'net.trainparam.epochs=5000;net.trainparam.show=50;%net.trainparam.lr=0.003;net.trainparam.goal=0.0000000001;net=init(net);%训练样本%net,tr=train(net,P,T);%测试%I=imread('DSC01323.jpg');I=imread('DS
16、C01344.jpg');dw=location(I);%车牌定位PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6=StringSplit(dw);%字符分割及处理%测试字符,得到识别数值%PIN0=pretreatment(PIN0);PIN1=pretreatment(PIN1);PIN2=pretreatment(PIN2);PIN3=pretreatment(PIN3);PIN4=pretreatment(PIN4);PIN5=pretreatment(PIN5);PIN6=pretreatment(PIN6);P0=PIN0',PIN1',
17、PIN2',PIN3',PIN4',PIN5',PIN6'for i=2:7 T0= sim(net ,P0(:,i); T1 = compet (T0) ; d =find(T1 = 1) - 1 if (d=10) str='A' elseif (d=11) str='C' elseif (d=12) str='G' elseif (d=13) str='L' elseif (d=14) str='M' elseif (d=15) str='R' elseif (d=16) str='H' elseif (d=17) str='N'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《神经机器翻译-基础、原理、实践与进阶》(第14章)英译实践报告
- 高端游艇俱乐部会员租赁及游艇租赁平台服务合同
- 股权托管及企业重组创新方案合同
- 机票代理销售团队绩效考核协议
- 金融服务机构核心团队股权绑定与风险控制协议
- H2O2和H2S互作调控西瓜幼苗枯萎病抗性的机理解析
- 网络广告合法合规性保证书及服务合同
- 小麦铵转运蛋白TaAMT1;1D与TaAMT2;1D基因功能及调控分析
- 智能建筑能源管理系统改造升级施工与调试协议
- 微信小程序电商供应链整合与品牌营销合作合同
- SL631水利水电工程单元工程施工质量验收标准第4部分:堤防与河道整治工程
- 人工智能引论知到智慧树章节测试课后答案2024年秋浙江大学
- 员工工资条模板
- 国开电大-工程数学(本)-工程数学第4次作业-形考答案
- 地铁工程车辆段路基填方施工方案
- 路基路面排水设计(配图说明共50页)
- YY∕T 0617-2021 一次性使用人体末梢血样采集容器
- 有关种子农药化肥购销合同模板
- 山东水利定额使用说明
- 钢结构焊接变形的火焰矫正方法
- 蒸汽锅炉运行记录表最新版
评论
0/150
提交评论