畢業(yè)設(shè)計]基于MATLAB的車牌識別系統(tǒng)的源代碼(可以實現(xiàn)).doc_第1頁
畢業(yè)設(shè)計]基于MATLAB的車牌識別系統(tǒng)的源代碼(可以實現(xiàn)).doc_第2頁
畢業(yè)設(shè)計]基于MATLAB的車牌識別系統(tǒng)的源代碼(可以實現(xiàn)).doc_第3頁
畢業(yè)設(shè)計]基于MATLAB的車牌識別系統(tǒng)的源代碼(可以實現(xiàn)).doc_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

k=input(Enterthefilename:,s);%輸入車牌照片im=imread(k);imshow(im);im_gray=rgb2gray(im);im_gray=medfilt2(im_gray,3,3);%對圖像進行中值濾波Image=im2bw(im_gray,0.2);BW=edge(im_gray,sobel);%找出圖像邊緣imx,imy=size(BW);%計算圖像大小msk=00000;01110;01110;01110;00000;B0=conv2(double(BW),double(msk);%對邊緣區(qū)域進行加強se=ones(2,80);B1=imdilate(B0,se);%figure;%imshow(B1);B2=imerode(B1,se);%figure;%imshow(B2);se=ones(20,2);B3=imdilate(B2,se);%figure;imshow(B3);B4=imerode(B3,se);%figure;imshow(B4);se=ones(50,2);B5=imdilate(B4,se);%figure;imshow(B5);B6=imerode(B5,se);%figure;imshow(B6);%對邊界圖進行小區(qū)域連通,使車牌區(qū)域連通為一個方塊B,L=bwboundaries(B6,4);imshow(label2rgb(L,jet,.5.5.5)%對連通區(qū)域進行標(biāo)記holdonfork=1:length(B)%用線條給連通區(qū)域標(biāo)上邊界線boundary=Bk;plot(boundary(:,2),boundary(:,1),w,LineWidth,2)endstats=regionprops(L,Area,Centroid);%找到每個連通域的質(zhì)心fork=1:length(B)%循環(huán)遍歷每個連通域的邊界boundary=Bk;%獲取一條邊界上的所有點delta_sq=diff(boundary).2;perimeter=sum(sqrt(sum(delta_sq,2);%計算邊界周長area=stats(k).Area;%獲取邊界所圍面積metric=27*area/perimeter2;%計算匹配度metric_string=sprintf(%2.2f,metric);%要顯示的匹配度字串ifmetric=0.85&metric1000%截取出匹配度接近1且面積大于1000像素的連通域centroid=stats(k).Centroid;plot(centroid(1),centroid(2),ko);%提取該連通域所對應(yīng)在二值圖像中的矩形區(qū)域goalboundary=boundary;s=min(goalboundary,1);e=max(goalboundary,1);goal=imcrop(Image,s(2)s(1)e(2)-s(2)e(1)-s(1);endtext(boundary(1,2)-35,boundary(1,1)+13,metric_string,Color,g,FontSize,14,FontWeight,bold);%顯示匹配度字串endgoal=goal;%對截取圖像進行反色處理figure;imshow(goal);a,b=size(goal);fori=a/2:-1:1%從圖像水平中軸開始向上掃描,當(dāng)白點數(shù)少于每行總點數(shù)的1/10時,停止掃描,并將該行定義為車牌字符區(qū)域的上限num=0;forj=1:bifgoal(i,j)=1num=num+1;endendifnum(b*0.1)line_up=i;break;endendfori=a/2:a%從圖像水平中軸開始向下掃描,當(dāng)白點數(shù)少于每行總點數(shù)的1/10時,停止掃描,并將該行定義為車牌字符區(qū)域的下限num=0;forj=1:bifgoal(i,j)=1num=num+1;endendifnum(b*0.1)line_down=i;break;endendgoal=goal(line_up:line_down,1:b);%根據(jù)之前定義的上下限截取車牌字符區(qū)域figure;imshow(goal);%顯示車牌字符區(qū)域a,b=size(goal);row=zeros(18);now=1;flag=0;forj=1:b%對截取出的字符區(qū)域進行豎列掃描,并取每列總點數(shù)的1/10作為閾值點,當(dāng)每列的白點數(shù)從閾值以上掉落到閾值以下或從閾值以下上升到閾值以上時,記錄該列的橫坐標(biāo)num=0;fori=1:aifgoal(i,j)=1num=num+1;endendifflag=0ifnum0.1*arow(now)=j;now=now+1;flag=0;endendendifrow(3)-row(2)10%判斷掃描出的第二塊區(qū)域(掃描到的第二列與第三列之間)是否包含有效字符,如包含,則將掃描到的第二列定義為字符分割的起始列;否則,則定義第一列為起始列now=2;elsenow=1;endfigure;l1=0;l2=0;fork=1:8m=row(now);n=row(now+1);temp=goal(1:a,m:n);point=0;%掃描每一個字符圖片的白點數(shù)fori=1:aforj=1:n-miftemp(i,j)=1point=point+1;endendendifpoint0.4*a*(n-m)&nm%當(dāng)掃描到的白點數(shù)小于總點數(shù)的2/5時放棄輸出(有可能是車牌上的點狀分隔符)l2=l2+1;%l2用來記錄識別出的字符數(shù)subplot(1,7,l2);x(k)=code(temp);%調(diào)用子程序進行字符掃描,并返回字符的ASCII碼x(k)=uint8(x(k);ifx(k)0%當(dāng)所選區(qū)域不為空時進行輸出l1=l1+1;%l1用來記錄輸出的字符數(shù)s(l1)=char(x(k);endtemp(32,32)=0;imshow(temp);endnow

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論