資源描述:
《車牌識別的matlab程序--(詳細(xì)注釋,并有使用注意點)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、附錄車牌識別程序clear;closeall;%Step1獲取圖像裝入待處理彩色圖像并顯示原始圖像Scolor=imread('3.jpg');%imread函數(shù)讀取圖像文件%將彩色圖像轉(zhuǎn)換為黑白并顯示Sgray=rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖figure,imshow(Scolor),title('原始彩色圖像');%figure命令同時顯示兩幅圖figure,imshow(Sgray),title('原始黑白圖像');%Step2圖像預(yù)處理對Sgray原始黑白圖像進(jìn)行開操作得到圖像背景s=strel('disk',13);%strel函數(shù)
2、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的最大值并輸出雙精度型fmin1=double(min(min(Egray)));%egray的最小值并輸出雙精度型leve
3、l=(fmax1-(fmax1-fmin1)/3)/255;%獲得最佳閾值bw22=im2bw(Egray,level);%轉(zhuǎn)換圖像為二進(jìn)制圖像bw2=double(bw22);%Step4對得到二值圖像作開閉操作進(jìn)行濾波figure,imshow(bw2);title('圖像二值化');%得到二值圖像grd=edge(bw2,'canny')%用canny算子識別強(qiáng)度圖像中的邊界figure,imshow(grd);title('圖像邊緣提取');%輸出圖像邊緣bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的閉運算figur
4、e,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對二值圖像進(jìn)行區(qū)域提取,并計算區(qū)域特征參數(shù)。進(jìn)行區(qū)域特征參數(shù)比較,提取車牌區(qū)域[L
5、,num]=bwlabel(bg2,8);%標(biāo)注二進(jìn)制圖像中已連接的部分Feastats=imfeature(L,'basic');%計算圖像區(qū)域的特征尺寸Area=[Feastats.Area];%區(qū)域面積BoundingBox=[Feastats.BoundingBox];%[xywidthheight]車牌框架大小RGB=label2rgb(L,'spring','k','shuffle');%標(biāo)志圖像向RGB圖像轉(zhuǎn)換figure,imshow(RGB);title('圖像彩色標(biāo)記');%輸出框架的彩色圖像lx=0;forl=1:numwidth=BoundingBox
6、((l-1)*4+3);%框架寬度的計算hight=BoundingBox((l-1)*4+4);%框架高度的計算if(width>98&width<160&hight>25&hight<50)%框架的寬度和高度的范圍,這塊兒不同的圖片對應(yīng)不同,可以用終端操作查看后更改?。?!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;
7、%車牌寬hight=BoundingBox((l-1)*4+4)+2;%車牌高rato=width/hight;%計算車牌長寬比ifrato>2&rato<4%這塊兒也需要根據(jù)具體情況更改一下,如3-6啊什么的break;endendsbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1);%獲取車牌二值子圖subcol1=Sgray(startrow:startrow+hight,startcol:startcol+width-1);%獲取