附录车牌识别程序clear;closeall;%Step1获取图像装入待处理彩色图像并显示原始图像Scolor=imread('';%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;%打开sgrays图像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=[];%区域面积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(width>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=BoundingBox((l-1*4+4+2;%车牌高rato=width/hight;%计算车牌长宽比ifrato>2&rato<4break;endendsbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1;%获取车牌二值子图subcol1=Sgray(startrow:startrow+hight,startcol:startcol+width-1;%获取车牌灰度子图figure,subplot(2,1,1,imshow(subcol1;title('车牌灰度子图';%输出灰度图subplot(2,1,2,imshow(sbw1;title('车牌二值子图';%输出车牌的二值图%Ste
车牌识别的matlab程序 来自淘豆网m.daumloan.com转载请标明出处.