车牌识别(字符切割)大作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图像处理技术

目录一.引言 (1)

二.目的和意义 (1)

三.设计原理 (1)

四.字符分割程序 (2)

五.结果 (4)

六.测试代码 (5)

七.系统的不足 (5)

八.总结 (5)

九.心得体会 (5)

十.致谢 (6)

十一.参考文献 (6)

一.引言

随着人们生活水平的不断提高,机动车辆数量大幅度增加,与之相配套的高速公路,城市路网及停车场越来越多,显著提高了人们对交通控制方面的要求。由于计算机技术的发展,信息处理水平的提高使智能交通系统成为世界交通领域研究的重要课题。其中车牌识别是智能交通系统的重要组成部分。车牌识别系统能够自动、实时地检测车辆、识别汽车车牌,从而监控车辆的收费、闯关、欠费以及各种舞弊现象。本系统为基于蓝色车牌的车牌识别系统,它能够识别非蓝色车辆的蓝底白字车牌。该系统通过车牌提取、车牌定位、预处理、字符分割、字符识别五个模块组成车牌识别系统。

二.目的和意义

通过对车牌识别系统的研究,自己开发小型车牌识别系统,虽有一定的局限性与不完整性,但可以使自己更加的熟悉MATLAB语言,激发对研究的兴趣,拓宽知识面,为自己以后的研究打下基础。在提升自身科研能力的同时,还能提高团队合作精神,清楚团队成员的分工,协调成员间的工作,为今后的团队合作研究积累经验。

三.设计原理

字符分割在此系统中有着承前启后的作用。它在前期车牌定位的基础上进行字符的分割,然后利用分割的结果进行字符的识别。字符识别的算法很多,应为车牌字符间间隔较大,不会出现字符粘连的情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为组成该块有两个字符,需要分割。一般分割出来的字符要进行进

一步的处理,以满足下一步字符识别的需要。但是对于车牌的识别,并不需要太多的处理就可以达到正确的目的。在此系统中只进行了归一化处理,然后进行后期处理。

四.字符分割程序

function Img_cat(I)

% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割

d=qiege(I);

[m,n]=size(d);

k1=1;k2=1;s=sum(d);j=1;

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 个字符,首先对车牌图像自左向右逐列扫描,寻找连续有文字的区间块,将该区间块的有效宽度与某一固定阈值(本文设定的阈值为10,可更改)进行比较,若小于该设定阈值,则认为是左侧干扰,裁剪干扰区域;反之,分割出该模糊字符块

y1=10;y2=0.25;flag=0;word1=[];

while flag==0 %flag为自定义,用作标记循环

[m,n]=size(d); %返回矩阵d的尺寸信息,并存储在m,n中。其中m中存储的是行数,n中存储的是列数

left=1;wide=0;

while sum(d(:,wide+1))~=0

wide=wide+1;

end

if wide

d(:,[1:wide])=0;%将字符区域设置为黑色

d=qiege(d);%处理干扰后切割出该黑色区域

else

temp=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>y2 图像归一化处理

flag=1;word1=temp;

end

d(:,1:wide)=0;d=qiege(d);

end

end

% 分割出第2~7个字符

[word2,d]=getword(d);

[word3,d]=getword(d);

[word4,d]=getword(d);

[word5,d]=getword(d);

[word6,d]=getword(d);

[word7,d]=getword(d);

[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]);

imwrite(word1,'save\1.jpg'); imwrite(word2,'save\2.jpg'); imwrite(word3,'save\3.jpg'); imwrite(word4,'save\4.jpg'); imwrite(word5,'save\5.jpg'); imwrite(word6,'save\6.jpg'); imwrite(word7,'save\7.jpg'); End

五.结果

六.测试代码

function zln_Main()

相关文档
最新文档