基于Matlab的車牌識別實現(xiàn)源碼(共10頁)

上傳人:Xgjmqtw****nqtwad... 文檔編號:61245719 上傳時間:2022-03-10 格式:DOC 頁數(shù):10 大小:31KB
收藏 版權(quán)申訴 舉報 下載
基于Matlab的車牌識別實現(xiàn)源碼(共10頁)_第1頁
第1頁 / 共10頁
基于Matlab的車牌識別實現(xiàn)源碼(共10頁)_第2頁
第2頁 / 共10頁
基于Matlab的車牌識別實現(xiàn)源碼(共10頁)_第3頁
第3頁 / 共10頁

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于Matlab的車牌識別實現(xiàn)源碼(共10頁)》由會員分享,可在線閱讀,更多相關(guān)《基于Matlab的車牌識別實現(xiàn)源碼(共10頁)(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-傾情為你奉上function=main(jpg)close allclctic %測定算法執(zhí)行的時間fn,pn=uigetfile(timg1,jpg,選擇圖片) %讀入圖片I=imread(pn,fn);figure,imshow(I);title(原始圖像); %顯示原始圖像Im1=rgb2gray(I);figure(2),subplot(1,2,1),imshow(Im1);title(灰度圖);figure(2),subplot(1,2,2),imhist(Im1);title(灰度圖的直方圖); %顯示圖像的直方圖Tiao=imadjust(Im1,0.19,0.78

2、,0,1); %調(diào)整圖片figure(3),subplot(1,2,1),imshow(Tiao);title(增強灰度圖);figure(3),subplot(1,2,2),imhist(Tiao);title(增強灰度圖的直方圖);Im2=edge(Tiao,Roberts,both); %使用sobel算子進行邊緣檢測figure(4),imshow(Im2);title(sobel算子實現(xiàn)邊緣檢測)se=1;1;1;Im3=imerode(Im2,se);figure(5),imshow(Im3);title(腐蝕效果圖);se=strel(square,40);%rectangle,

3、25,25/diamond,25/Im4=imclose(Im3,se);figure(6),imshow(Im4);title(平滑圖像的輪廓);Im5=bwareaopen(Im4,1500);figure(7),imshow(Im5);title(移除小對象);y,x,z=size(Im5); %返回Im5各維的尺寸,并存儲在變量y、x、z中Im6=double(Im5); %將Im5換成雙精度數(shù)值 %開始橫向掃描tic %tic計時開始,toc結(jié)束,計算tic與toc之間程序的運行時間Blue_y=zeros(y,1); %產(chǎn)生y*1的全0矩陣for i=1:y %逐行掃描 for j

4、=1:x if(Im6(i,j,1)=1)%如果Im6圖像中坐標為(i,j)的點值為1,即為移除小對象的白色區(qū)域, Blue_y(i,1)= Blue_y(i,1)+1;%則y*1列矩陣的相應(yīng)像素點的元素值加1, end end end temp MaxY=max(Blue_y);%temp為向量Blue_y的矩陣中的最大值,MaxY為該值的索引(最大值在向量中的位置)%返回包含最大元素的列,即白色區(qū)域最寬的列%Y方向車牌區(qū)域確定figure(8),subplot(1,2,1),plot(0:y-1,Blue_y),title(行方向白色像素點累計),xlabel(行數(shù)),ylabel(個數(shù))

5、;PY1=MaxY;while (Blue_y(PY1,1)=120)&(PY11) PY1=PY1-1;endPY2=MaxY;while (Blue_y(PY2,1)=40)&(PY2y) PY2=PY2+1;endIY=I(PY1:PY2,:,:);%IY為原始圖像I中截取的縱坐標在PY1:PY2之間的部分%橫向掃描完成,開始縱向掃描Blue_x=zeros(1,x);%進一步確定x方向的車牌區(qū)域for j=1:x %逐列掃描 for i=PY1:PY2 if(Im6(i,j,1)=1) Blue_x(1,j)= Blue_x(1,j)+1; %根據(jù)Im5的x值確定 end end en

6、dfigure(8),subplot(1,2,2),plot(0:x-1,Blue_x),title(列方向白色像素點累計),xlabel(列數(shù)),ylabel(個數(shù));PX1=1;while (Blue_x(1,PX1)3)&(PX1x) PX1=PX1+1;endPX2=x;while (Blue_x(1,PX2)PX1) PX2=PX2-1;end %end縱向掃描PX1=PX1-2;%對車牌區(qū)域的校正PX2=PX2+2;dw=I(PY1:PY2,PX1:PX2,:);t=toc;figure(9),subplot(1,2,1),imshow(IY),title(垂直方向合理區(qū)域);fi

7、gure(9),subplot(1,2,2),imshow(dw),title(定位剪切后的彩色車牌圖像)imwrite(dw,dw.jpg); %將圖像寫入圖形文件中a=imread(dw.jpg);b=rgb2gray(a);imwrite(b,車牌灰度圖像.jpg);figure(10);subplot(3,2,1),imshow(b),title(1.車牌灰度圖像)g_max=double(max(max(b);g_min=double(min(min(b);T=round(g_max-(g_max-g_min)/3); %T為設(shè)定的二值化的閾值,返回一個四舍五入的整數(shù)值m,n=siz

8、e(b);d=(double(b)=T); %d為二值圖像imwrite(d,車牌二值圖像.jpg);figure(10);subplot(3,2,2),imshow(d),title(2.車牌二值圖像)figure(10),subplot(3,2,3),imshow(d),title(3.均值濾波前)h=fspecial(average,3);%建立預(yù)定義的濾波算子,average為均值濾波,模板尺寸為3*3d=imbinarize(round(filter2(h,d); %im2bw,使用指定的濾波器h對h進行d即均值濾波imwrite(d,均值濾波后.jpg);figure(10),su

9、bplot(3,2,4),imshow(d),title(4.均值濾波后)se=eye(2);%單位矩陣m,n=size(d); %d為二值圖像,返回信息矩陣if bwarea(d)/m/n=0.365%二值圖像中對象的總面積與整個面積的比大于0.365 d=imerode(d,se);%進行腐蝕elseif bwarea(d)/m/n=0.235%二值圖像中對象的總面積與整個面積的比值小于0.235 d=imdilate(d,se);%進行膨脹endimwrite(d,膨脹或腐蝕處理后.jpg);figure(10),subplot(3,2,5),imshow(d),title(5.膨脹或腐

10、蝕處理后.jpg)d=qiege(d); %切割,尋找連續(xù)有文字的塊,若長度大于某閾值,則認為該塊有兩個字符組成,需要分割m,n=size(d);k1=1;k2=1;s=sum(d);j=1;while j=n while s(j)=0 j=j+1; end k1=j; while s(j)=0 & j=round(n/6.5) val,num=min(sum(d(:,k1+5:k2-5); d(:,k1+num+5)=0; endendd=qiege(d);y1=10;y2=0.25;flag=0;word1=;while flag=0 m,n=size(d); wide=0; while

11、sum(d(:,wide+1)=0 %掃過的地方不全為黑色,向右移動,直到不是停止 wide=wide+1; end if widey2 flag=1;word1=temp; end d(:,1:wide)=0;d=qiege(d); endendword2,d=getword(d); %分割出第二個字符word3,d=getword(d); %分割出第三個字符word4,d=getword(d); %分割出第四個字符word5,d=getword(d); %分割出第五個字符word6,d=getword(d); %分割出第六個字符word7,d=getword(d); %分割出第七個字符wo

12、rd1=imresize(word1,40 20);%模板字符大小統(tǒng)一為40*20,為字符辨認做準備word2=imresize(word2,40 20);word3=imresize(word3,40 20);word4=imresize(word4,40 20);word5=imresize(word5,40 20);word6=imresize(word6,40 20);word7=imresize(word7,40 20);figure(11);subplot(2,7,1),imshow(word1),title(1);subplot(2,7,2),imshow(word2),titl

13、e(2);subplot(2,7,3),imshow(word3),title(3);subplot(2,7,4),imshow(word4),title(4);subplot(2,7,5),imshow(word5),title(5);subplot(2,7,6),imshow(word6),title(6);subplot(2,7,7),imshow(word7),title(7);imwrite(word1,1.jpg);imwrite(word2,2.jpg);imwrite(word3,3.jpg);imwrite(word4,4.jpg);imwrite(word5,5.jpg);

14、imwrite(word6,6.jpg);imwrite(word7,7.jpg);liccode=char(0:9 A:Z 遼粵豫鄂魯陜京津蘇浙);%建立自動識別字符代碼表,將t0:9 A:Z 魯陜蘇豫多個字符串組成一個字符數(shù)組,每行對應(yīng)一個字符串,字符數(shù)不足的自動補空格SubBw2=zeros(40,20);%40*20的零矩陣l=1;for I=1:7 ii=int2str(I);%整型轉(zhuǎn)換字符串 t=imread(ii,.jpg); SegBw2=imresize(t,40 20,nearest);%改變圖片的大小 SegBw2=double(SegBw2)50;%將灰度圖轉(zhuǎn)化為二值圖

15、像,double產(chǎn)生0-255的灰度值 if l=1 %第一位漢字識別 kmin=37; kmax=46;%模板中漢字所在的位置 elseif l=2 %第二位字母識別 kmin=11; kmax=36;%A-Z字母位置 else l=3 %第三位后字母或數(shù)字識別 kmin=1; kmax=36; end for k2=kmin:kmax fname=strcat(字符模板,liccode(k2),.jpg); SamBw2=imread(fname); SamBw2=double(SamBw2)50;%將模板轉(zhuǎn)換為二值圖,double產(chǎn)生0-255的灰度值 for i=1:40 for j=

16、1:20 SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j); end end %相當于兩幅圖相減得第三幅圖 Dmax=0; for k1=1:40 for l1=1:20 if abs(SubBw2(k1,l1)0 Dmax=Dmax+1; end end end Error(k2)=Dmax; end Error1=Error(kmin:kmax);%模板對應(yīng)的字符模板進行匹配選擇 MinError=min(Error1); findc=find(Error1=MinError); Code(l*2-1)=liccode(findc(1)+kmin-1); Code(l

17、*2)= ; l=l+1;endmsgbox(Code,識別結(jié)果)function word,result=getword(d) %定義分割字符用函數(shù)(1)word=;flag=0;y1=8;y2=0.5;while flag=0 m,n=size(d); wide=0; while sum(d(:,wide+1)=0 & wide=n-2 wide=wide+1; end temp=imcrop(d,1 1 wide m);%用于返回圖像的一個裁剪區(qū)域 m1,n1=size(temp); z=sum(temp,2);count=0; for i=1:m1 if z(i)=0 count=co

18、unt+1; end end if countm/3 d(:,1,wide)=0; d=qiege(d); else temp=qiege(imcrop(d,1 1 wide m);%用于返回圖像的一個裁剪區(qū)域 m1,n1=size(temp); if widey2 %寬度過小,或長大于寬的兩倍 d(:,1,wide)=0; if sum(sum(d)=0 %d中所有元素之和 d=qiege(d);%切割出最小范圍 else word=;flag=1; end else word=qiege(imcrop(d,1 1 wide m);%劃分出的temp進行切割 d(:,1:wide)=0;%切

19、割完后該區(qū)域變?yōu)楹谏?if sum(sum(d)=0 d=qiege(d);flag=1; else d=; end end endendresult=d;function e=qiege(d) %定義分割字符用函數(shù)(2)m,n=size(d);top=1;bottom=m;left=1;right=n; %intewhile sum(d(top,:)=0 & top=1 bottom=bottom-1;endwhile sum(d(:,left)=0 & left=1 right=right-1;enddd=right-left;hh=bottom-top;e=imcrop(d,left top dd hh);/字符實別需要字符圖庫,沒有對照圖庫是識別不了的專心-專注-專業(yè)

展開閱讀全文
溫馨提示:
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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!