資源描述:
《車牌識別的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對二值圖像進行區(qū)域提取,并計算區(qū)域特征參數。進行區(qū)域特征參數比較,提取車牌區(qū)域[L,num]=bwlabel(bg2,8);%標注二進制圖像中已連接的部分Feastats=imfeature(L,'basic');%計算圖像區(qū)域的特征尺寸Area=[Feastats.Area];
6、%區(qū)域面積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