资源描述:
《车牌识别的matlab程序-(详细注释,并有使用注意点)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.附录车牌识别程序clear;closeall;%Step1获取图像装入待处理彩色图像并显示原始图像Scolor=imread('3.jpg');%imread函数读取图像文件%将彩色图像转换为黑白并显示Sgray=rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Scolor),title('原始彩色图像');%figure命令同时显示两幅图figure,imshow(Sgray),title('原始黑白图像');%Step2图像预处理对Sgray原始黑白图像
2、进行开操作得到图像背景s=strel('disk',13);%strel函数Bgray=imopen(Sgray,s);%打开sgrays图像figure,imshow(Bgray);title('背景图像');%输出背景图像%用原始图像与背景图像作减法,增强图像Egray=imsubtract(Sgray,Bgray);%两幅图相减figure,imshow(Egray);title('增强黑白图像');%输出黑白图像%Step3取得最佳阈值,将图像二值化fmax1=double(max(max(Eg
3、ray)));%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')
4、%用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]');%
5、输出开运算的图像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];
6、%区域面积BoundingBox=[Feastats.BoundingBox];%[xywidthheight]车牌框架大小RGB=label2rgb(L,'spring','k','shuffle');%标志图像向RGB图像转换figure,imshow(RGB);title('图像彩色标记');%输出框架的彩色图像lx=0;forl=1:numwidth=BoundingBox((l-1)*4+3);%框架宽度的计算hight=BoundingBox((l-1)*4+4);%框架高度的计算if(wi
7、dth>98&width<160&hight>25&hight<50)%框架的宽度和高度的范围,这块儿不同的图片对应不同,可以用终端操作查看后更改!!!lx=lx+1;Getok(lx)=l;endendfork=1:lxl=Getok(k);......startcol=BoundingBox((l-1)*4+1)-2;%开始列startrow=BoundingBox((l-1)*4+2)-2;%开始行width=BoundingBox((l-1)*4+3)+8;%车牌宽hight=BoundingB
8、ox((l-1)*4+4)+2;%车牌高rato=width/hight;%计算车牌长宽比ifrato>2&rato<4%这块儿也需要根据具体情况更改一下,如3-6啊什么的break;endendsbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1);%获取车牌二值子图subcol1=Sgray(startrow:startrow+hight,startcol:startcol