基于MATLAB的车牌识别系统的源代码(可以实现).pdf

基于MATLAB的车牌识别系统的源代码(可以实现).pdf

ID:53008377

大小:90.21 KB

页数:4页

时间:2020-04-11

基于MATLAB的车牌识别系统的源代码(可以实现).pdf_第1页
基于MATLAB的车牌识别系统的源代码(可以实现).pdf_第2页
基于MATLAB的车牌识别系统的源代码(可以实现).pdf_第3页
基于MATLAB的车牌识别系统的源代码(可以实现).pdf_第4页
资源描述:

《基于MATLAB的车牌识别系统的源代码(可以实现).pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、k=input('Enterthefilename:','s');%输入车牌照片im=imread(k);imshow(im);im_gray=rgb2gray(im);im_gray=medfilt2(im_gray,[3,3]);%对图像进行中值滤波Image=im2bw(im_gray,0.2);BW=edge(im_gray,'sobel');%找出图像边缘[imx,imy]=size(BW);%计算图像大小msk=[00000;01110;01110;01110;00000;];B0=conv2(doubl

2、e(BW),double(msk));%对边缘区域进行加强se=ones(2,80);B1=imdilate(B0,se);%figure;%imshow(B1);B2=imerode(B1,se);%figure;%imshow(B2);se=ones(20,2);B3=imdilate(B2,se);%figure;imshow(B3);B4=imerode(B3,se);%figure;imshow(B4);se=ones(50,2);B5=imdilate(B4,se);%figure;imshow(B5);

3、B6=imerode(B5,se);%figure;imshow(B6);%对边界图进行小区域连通,使车牌区域连通为一个方块[B,L]=bwboundaries(B6,4);imshow(label2rgb(L,@jet,[.5.5.5]))%对连通区域进行标记holdonfork=1:length(B)%用线条给连通区域标上边界线boundary=B{k};plot(boundary(:,2),boundary(:,1),'w','LineWidth',2)endstats=regionprops(L,'Area'

4、,'Centroid');%找到每个连通域的质心fork=1:length(B)%循环遍历每个连通域的边界boundary=B{k};%获取一条边界上的所有点delta_sq=diff(boundary).^2;perimeter=sum(sqrt(sum(delta_sq,2)));%计算边界周长area=stats(k).Area;%获取边界所围面积metric=27*area/perimeter^2;%计算匹配度metric_string=sprintf('%2.2f',metric);%要显示的匹配度字串if

5、metric>=0.85&&metric<=1.15&&area>1000%截取出匹配度接近1且面积大于1000像素的连通域centroid=stats(k).Centroid;plot(centroid(1),centroid(2),'ko');%提取该连通域所对应在二值图像中的矩形区域goalboundary=boundary;s=min(goalboundary,[],1);e=max(goalboundary,[],1);goal=imcrop(Image,[s(2)s(1)e(2)-s(2)e(1)-s(1

6、)]);endtext(boundary(1,2)-35,boundary(1,1)+13,metric_string,'Color','g','FontSize',14,'FontWeight','bold');%显示匹配度字串endgoal=~goal;%对截取图像进行反色处理figure;imshow(goal);[a,b]=size(goal);fori=a/2:-1:1%从图像水平中轴开始向上扫描,当白点数少于每行总点数的1/10时,停止扫描,并将该行定义为车牌字符区域的上限num=0;forj=1:bif

7、goal(i,j)==1num=num+1;endendifnum<(b*0.1)line_up=i;break;endendfori=a/2:a%从图像水平中轴开始向下扫描,当白点数少于每行总点数的1/10时,停止扫描,并将该行定义为车牌字符区域的下限num=0;forj=1:bifgoal(i,j)==1num=num+1;endendifnum<(b*0.1)line_down=i;break;endendgoal=goal(line_up:line_down,1:b);%根据之前定义的上下限截取车牌字符区域f

8、igure;imshow(goal);%显示车牌字符区域[a,b]=size(goal);row=zeros(18);now=1;flag=0;forj=1:b%对截取出的字符区域进行竖列扫描,并取每列总点数的1/10作为阈值点,当每列的白点数从阈值以上掉落到阈值以下或从阈值以下上升到阈值以上时,记录该列的横坐标num=0;fori=1:aif

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。