資源描述:
《車牌識(shí)別及matlab程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、附錄車牌識(shí)別程序clear;closeall;%Step1獲取圖像裝入待處理彩色圖像并顯示原始圖像Scolor=imread('3.jpg');%imread函數(shù)讀取圖像文件%將彩色圖像轉(zhuǎn)換為黑白并顯示Sgray=rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖figure,imshow(Scolor),title('原始彩色圖像');%figure命令同時(shí)顯示兩幅圖figure,imshow(Sgray),title('原始黑白圖像');%Step2圖像預(yù)處理對(duì)Sgray原始黑白圖像進(jìn)行開操作得到圖像背景s=s
2、trel('disk',13);%strel函數(shù)Bgray=imopen(Sgray,s);%打開sgrays圖像figure,imshow(Bgray);title('背景圖像');%輸出背景圖像%用原始圖像與背景圖像作減法,增強(qiáng)圖像Egray=imsubtract(Sgray,Bgray);%兩幅圖相減figure,imshow(Egray);title('增強(qiáng)黑白圖像');%輸出黑白圖像%Step3取得最佳閾值,將圖像二值化fmax1=double(max(max(Egray)));%egray的最大值并輸出雙精度型fmi
3、n1=double(min(min(Egray)));%egray的最小值并輸出雙精度型level=(fmax1-(fmax1-fmin1)/3)/255;%獲得最佳閾值bw22=im2bw(Egray,level);%轉(zhuǎn)換圖像為二進(jìn)制圖像bw2=double(bw22);%Step4對(duì)得到二值圖像作開閉操作進(jìn)行濾波figure,imshow(bw2);title('圖像二值化');%得到二值圖像grd=edge(bw2,'canny')%用canny算子識(shí)別強(qiáng)度圖像中的邊界figure,imshow(grd);title('圖
4、像邊緣提取');%輸出圖像邊緣bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的閉運(yùn)算figure,imshow(bg1);title('圖像閉運(yùn)算[5,19]');%輸出閉運(yùn)算的圖像bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的開運(yùn)算figure,imshow(bg3);title('圖像開運(yùn)算[5,19]');%輸出開運(yùn)算的圖像bg2=imopen(bg3,strel('rectangle',[19,1]));%取矩形框的開運(yùn)算
5、figure,imshow(bg2);title('圖像開運(yùn)算[19,1]');%輸出開運(yùn)算的圖像%Step5對(duì)二值圖像進(jìn)行區(qū)域提取,并計(jì)算區(qū)域特征參數(shù)。進(jìn)行區(qū)域特征參數(shù)比較,提取車牌區(qū)域[L,num]=bwlabel(bg2,8);%標(biāo)注二進(jìn)制圖像中已連接的部分Feastats=imfeature(L,'basic');%計(jì)算圖像區(qū)域的特征尺寸Area=[Feastats.Area];%區(qū)域面積BoundingBox=[Feastats.BoundingBox];%[xywidthheight]車牌框架大小RGB=label2
6、rgb(L,'spring','k','shuffle');%標(biāo)志圖像向RGB圖像轉(zhuǎn)換figure,imshow(RGB);title('圖像彩色標(biāo)記');%輸出框架的彩色圖像lx=0;forl=1:numwidth=BoundingBox((l-1)*4+3);%框架寬度的計(jì)算hight=BoundingBox((l-1)*4+4);%框架高度的計(jì)算if(width>98&width<160&hight>25&hight<50)%框架的寬度和高度的范圍lx=lx+1;Getok(lx)=l;endendfork=1:lxl=G
7、etok(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;%計(jì)算車牌長(zhǎng)寬比ifrato>2&rato<4break;endendsbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1);%
8、獲取車牌二值子圖subcol1=Sgray(startrow:startrow+hight,startcol:startcol+width-1);%獲取車牌灰度子圖figure,subplot(2,1,1),imshow(subcol1);title('車牌灰度