基于数字图像处理的车牌识别本科毕业论文(编辑修改稿)内容摘要:

Blue_x(1,j)= Blue_x(1,j)+1。 end end end PX1=1。 while ((Blue_x(1,PX1)3)amp。 amp。 (PX1x)) PX1=PX1+1。 end PX2=x。 while ((Blue_x(1,PX2)3)amp。 amp。 (PX2PX1)) PX2=PX21。 end 11 PX1=PX11。 %车牌区域 校正 PX2=PX2+1。 dw=I(PY1:PY28,PX1:PX2,:)。 t=toc。 subplot(1,2,1),imshow(IY),title(39。 Line direction areas39。 )。 %车牌行方向 区域 的确定 subplot(1,2,2),imshow(dw),title(39。 positioning color images39。 )。 %车牌已经定位后的区域显示如下 : 图 车牌的定位 picture7 字符的分割与识别 处理 划分彩色图像需经过灰度变换,二值化,均值滤波,腐蚀和膨胀到一个字符,并对分割字符进二值化、归一化等图像预处理使车牌图像的车牌号字符分割构成隔离,然后分析识别已经分割字符识的图像并用文本的车牌号的形式呈现 出来。 代码 显示 如下: imwrite(dw,39。 39。 )。 %把 彩色车牌写入 dw文件里 12 a=imread(39。 39。 )。 %读取车牌文件 数据 b=rgb2gray(a)。 %把车牌图像变 换为灰度图 imwrite(b,39。 gray licence 39。 )。 %把灰度图像写入文件里 subplot(3,2,1),imshow(b),title(39。 车牌灰度图像 39。 ) g_max=double(max(max(b)))。 g_min=double(min(min(b)))。 T=round(g_max(g_maxg_min)/3)。 % T 表示 二值化的阈值 [m,n]=size(b)。 d=(double(b)=T)。 % d:二值图像 imwrite(d,39。 binary licence 39。 )。 subplot(3,2,2),imshow(d),title(39。 before filtering binary licence plate39。 ) %均值滤波 之 前 % 滤波 h=fspecial(39。 average39。 ,3)。 %模板的尺寸: 3*3, average:均值滤波,建立滤波算子 d=im2bw(round(filter2(h,d)))。 %用指定的滤波器 h 然后对其 均值滤波 即进行 d imwrite(d,39。 after average licence 39。 )。 subplot(3,2,3),imshow(d),title(39。 after average licence plate39。 ) % 操作某些图象 % 膨胀或腐蚀 % se=strel(39。 square39。 ,3)。 %图片膨胀处理 % 39。 line39。 /39。 diamond39。 /39。 ball39。 ... se=eye(2)。 % eye(n) returns the nbyn identity matrix 单位矩阵 [m,n]=size(d)。 if bwarea(d)/m/n= d=imerode(d,se)。 %假如 大于 即 图像进行腐蚀 elseif bwarea(d)/m/n= d=imdilate(d,se)。 %假如小于即 实现膨胀操作 end 13 imwrite(d,39。 expansion or corrosion the licence 39。 )。 subplot(3,2,4),imshow(d),title(39。 expansion or corrosion the licence plate39。 ); 运行结果显示如下 : 图 字符分割与识别 picture8 字符分割 字符分割 就是把已经定位好的车牌区域上的字符分别提取出来,我们知道中国的车牌上字符之间是存在间隙的,就是利用这个间隙来实现我们对定位区域的车牌分割,通过搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组成,要分割, 对 分割好的字符再进行归一化的处理。 %搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组成,要分割,对分割 %建立 子函数 qiege、 getword,调用子程序, 分割 车牌字符 并 做 归一化 的 处 理 d=qiege(d)。 [m,n]=size(d)。 14 subplot(3,2,5),imshow(d),title(n) 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 amp。 amp。 j=n1 j=j+1。 end k2=j1。 if k2k1=round(n/) [val,num]=min(sum(d(:,[k1+5:k25])))。 d(:,k1+num+5)=0。 % 分割 车牌字符 end end % 进一步 切割 d=qiege(d)。 % 切割出 7七 个字符 y1=10。 y2=。 flag=0。 word1=[]。 while flag==0 [m,n]=size(d)。 left=1。 wide=0。 while sum(d(:,wide+1))~=0 wide=wide+1。 end if widey。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。