- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
车牌识别的matlab程序--(详细注释,并有使用注意点)
附录车牌识别程序clear ;close all;%Step1 获取图像装入待处理彩色图像并显示原始图像Scolor = imread(3.jpg);%imread函数读取图像文件%将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Scolor),title(原始彩色图像);%figure命令同时显示两幅图figure,imshow(Sgray),title(原始黑白图像);%Step2 图像预处理对Sgray原始黑白图像进行开操作得到图像背景s=strel(disk,13);%strel函数Bgray=imopen(Sgray,s);%打开sgray s图像figure,imshow(Bgray);title(背景图像);%输出背景图像%用原始图像与背景图像作减法,增强图像Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title(增强黑白图像);%输出黑白图像%Step3 取得最佳阈值,将图像二值化fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值bw22=im2bw(Egray,level);%转换图像为二进制图像bw2=double(bw22);%Step4 对得到二值图像作开闭操作进行滤波figure,imshow(bw2);title(图像二值化);%得到二值图像grd=edge(bw2,canny)%用canny算子识别强度图像中的边界figure,imshow(grd);title(图像边缘提取);%输出图像边缘bg1=imclose(grd,strel(rectangle,[5,19]));%取矩形框的闭运算figure,imshow(bg1);title(图像闭运算[5,19]);%输出闭运算的图像bg3=imopen(bg1,strel(rectangle,[5,19]));%取矩形框的开运算figure,imshow(bg3);title(图像开运算[5,19]);%输出开运算的图像bg2=imopen(bg3,strel(rectangle,[19,1]));%取矩形框的开运算figure,imshow(bg2);title(图像开运算[19,1]);%输出开运算的图像%Step5 对二值图像进行区域提取,并计算区域特征参数。进行区域特征参数比较,提取车牌区域[L,num] = bwlabel(bg2,8);%标注二进制图像中已连接的部分Feastats = imfeature(L,basic);%计算图像区域的特征尺寸Area=[Feastats.Area];%区域面积BoundingBox=[Feastats.BoundingBox];%[x y width height]车牌框架大小RGB = label2rgb(L, spring, k, shuffle); %标志图像向RGB图像转换figure,imshow(RGB);title(图像彩色标记);%输出框架的彩色图像lx=0;for l=1:num width=BoundingBox((l-1)*4+3);%框架宽度的计算hight=BoundingBox((l-1)*4+4);%框架高度的计算if (width98 width160 hight25 hight50)%框架的宽度和高度的范围,这块儿不同的图片对应不同,可以用终端操作查看后更改!!! lx=lx+1;Getok(lx)=l;endendfor k= 1:lx l=Getok(k);startcol=BoundingBox((l-1)*4+1)-2;%开始列startrow=BoundingBox((l-1)*4+2)-2;%开始行 width=BoundingBox((l-1)*4+3)+8;%车牌宽hight=BoundingBox((l-1)*4+4)+2;%车牌高rato=width/hight;%计算车牌长宽比if rato2 rato4%这块儿也需要根据具体情况更改一下,如3-6啊什么的 break;endendsbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1); %获取车牌二值子图subcol1=Sgray(startrow:startrow+hight,startcol:star
文档评论(0)