版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)——車牌號(hào)碼識(shí)別利用MATLAB對車牌號(hào)碼進(jìn)行識(shí)別。車牌號(hào)碼識(shí)別步驟主要包括原始圖像采集、車牌切割、字符切割和字符識(shí)別,其中車牌切割又包括灰度變換、邊緣檢測、圖像腐蝕、圖像膨脹、刪除小面積對象、車牌定位切割;字符切割又包括定位切割后的車牌圖像灰度處理、直方圖均衡化、圖像二值化處理、中值濾波、分割字符。本例車牌號(hào)碼識(shí)別具體步驟如下。(1)讀取車牌原始圖像。(2)原始圖像灰度變換。(3)灰度圖像邊緣檢測。(4)圖像腐蝕。(5)圖像膨脹。(6)刪除小面積對象。(7)車牌定位切割。(8)定位切割后的車牌圖像灰度處理。(9)灰度圖像直方圖均衡化。(10)圖像二值化處理。(11)圖像中值濾波。(12)字符分割。(13)字符顯示和創(chuàng)建。(14)車牌號(hào)碼識(shí)別結(jié)果顯示。利用MATLAB編寫子程序函數(shù)my_imsplit,并儲(chǔ)存于my_imsplit.m文件中。12345678910111213141516171819function[split_img]=my_imsplit(img)[m,n]=size(img);top=1;bottom=m;left=1;right=n;whilesum(img(top,:))==0&&top<=mtop=top+1;endwhilesum(img(bottom,:))==0&&bottom>=1bottom=bottom-1;endwhilesum(img(:,left))==0&&left<=nleft=left+1;endwhilesum(img(:,right))==0&&right>=1right=right-1;endwidth=right-left;height=bottom-top;split_img=imcrop(img,[lefttopwidthheight]);end%定義圖像分割函數(shù)%獲取圖像大小%參數(shù)賦值%獲取圖像頂部位置%獲取圖像頂部位置%獲取圖像頂部位置%獲取圖像底部位置%獲取圖像底部位置%獲取圖像底部位置%獲取圖像左邊界%獲取圖像左邊界%獲取圖像左邊界%獲取圖像右邊界%獲取圖像右邊界%獲取圖像右邊界%獲取圖像寬度%獲取圖像高度%切割圖像結(jié)束利用MATLAB編寫子程序函數(shù)getword,并儲(chǔ)存于getword.m文件中。12345678910111213141516171819202122232425262728293031function[word,result]=getword(img)word=[];flag=0;y1=8;y2=0.5;whilefla==0[m,n]=size(img);width=0;whilesum(img(:,width+1))~=0&&width<=n-2width=width+1;endtemp=my_imsplit(imcrop(img,[1,1,width,m]));[m1,n1]=size(temp);ifwidth<y1&&n1/m1>y2img(:,[1,width])=0;ifsum(sum(img))~=0img=y_imsplit(img);elseword=[];flag=1;endelseword=my_imsplit(imcrop(img,[1,1,width,m]));img(:,1:width)=0;ifsum(sum(img))~=0img=my_imsplit(img);flag=1;elseimg=[];endendendresult=img;end%定義字符分割函數(shù)%參數(shù)賦值%判斷flag是否等于0%獲取字符大小%設(shè)置符號(hào)寬度為0%判斷字符寬度%字符寬度加1%判斷結(jié)束%調(diào)用字符在切割函數(shù)%獲取字符大小%判斷字符寬度%切割字符寬度%判斷字符寬度是否不等于0%切割最小字符%否則%賦值%賦值%結(jié)束%否則%調(diào)取字符再切割函數(shù)%切割字符%判斷字符寬度是否等于0%切割最小字符%賦值%否則%賦值%結(jié)束%結(jié)束%結(jié)束%賦值結(jié)束利用MATLAB編寫車牌號(hào)碼識(shí)別主程序。123456[filename,filepath]=uigetfile('.jpg','輸入要識(shí)別的圖像');file=strcat(filepath,filename);img=imread(file);figure(1)imshow(img)title('原始圖像')%輸入原始圖像%橫向連接字符串%讀取圖像文件%設(shè)置圖形窗口1%顯示原始圖像%原始圖形標(biāo)注讀取車牌原始圖像7891011121314img1=rgb2gray(img);figure(2)subplot(1,2,1)imshow(img1)title('灰度圖像')subplot(1,2,2)imhist(img1)title('灰度圖像直方圖')%img圖像轉(zhuǎn)為灰度圖像%設(shè)置圖形窗口2%設(shè)置圖形位置%顯示灰度圖像%灰度圖像標(biāo)注%設(shè)置圖形位置%提取img1圖像直方圖信息%灰度圖像直方圖標(biāo)注原始圖像灰度變換15161718img4=edge(img1,'roberts',0.15,'both');figure(3)imshow(img4)title('邊緣檢測后的圖像')%img1圖像邊緣檢測%設(shè)置圖形窗口3%顯示邊緣檢測后的圖像%邊緣檢測后的圖像標(biāo)注灰度圖像邊緣檢測1920212223se=[1;1;1];img5=imerode(img4,se);figure(4)imshow(img5)title('腐蝕后的圖像')%設(shè)置se初值%img4圖像腐蝕%設(shè)置圖形窗口4%顯示腐蝕后的圖像%腐蝕后的圖像標(biāo)注圖像腐蝕2425262728se=strel('rectangle',[30,30]);img6=imclose(img5,se);figure(5)imshow(img6)title('膨脹后的圖像')%計(jì)算se%img5圖像膨脹%設(shè)置圖形窗口5%顯示膨脹后的圖像%膨脹后的圖像標(biāo)注圖像膨脹29303132img7=bwareaopen(img6,2200);figure(6)imshow(img7)title('刪除小面積后的圖像')%刪除小于2200的圖像%設(shè)置圖形窗口6%顯示刪除小面積后的圖形%刪除小面積后的圖形標(biāo)注刪除小面積對象333435363738394041424344454647484950515253545556575859606162636465666768697071[y,x,z]=size(img7);img8=double(img7);blue_Y=zeros(y,1);fori=1:yforj=1:xif(img8(i,j)==1)blue_Y(i,1)=blue_Y(i,1)+1;endendendimg_Y1=1;while(blue_Y(img_Y1)<5)&&(img_Y1<y)img_Y1=img_Y1+1;endimg_Y2=y;while(blue_Y(img_Y2)<5)&&(img_Y2>img_Y1)img_Y2=img_Y2-1;endblue_X=zeros(1,x);forj=1:xfori=1:yif(img8(i,j)==1)blue_X(1,j)=blue_X(1,j)+1;endendendimg_X1=1;while(blue_X(1,img_X1)<5)&&(img_X1<x)img_X1=img_X1+1;endimg_X2=x;while(blue_X(1,img_X2)<5)&&(img_X2>img_X1)img_X2=img_X2-1;endimg9=img(img_Y1:img_Y2,img_X1:img_X2,:);figure(7)imshow(img9)title('定位切割后的車牌圖像')imwrite(img9,'車牌圖像.jpg')%獲取img7圖像大小%img7轉(zhuǎn)成雙精度浮點(diǎn)型%Y方向生成全零矩陣%變量i循環(huán)開始%變量j循環(huán)開始%判斷車牌位置區(qū)域%像素點(diǎn)統(tǒng)計(jì)%判斷結(jié)束%變量j循環(huán)結(jié)束%變量i循環(huán)結(jié)束%設(shè)Y坐標(biāo)最小值為1%判斷Y方向值%增加坐標(biāo)值%判斷結(jié)束%設(shè)Y坐標(biāo)最大值為y%判斷Y方向值%減小坐標(biāo)值%判斷結(jié)束%X方向生成全零矩陣%變量j循環(huán)開始%變量i循環(huán)開始%判斷車牌位置區(qū)域%像素點(diǎn)統(tǒng)計(jì)%判斷結(jié)束%變量i循環(huán)結(jié)束%變量j循環(huán)結(jié)束%設(shè)X坐標(biāo)最小值為1%判斷X方向值%增加坐標(biāo)值%判斷結(jié)束%設(shè)X坐標(biāo)最大值為y%判斷X方向值%減小坐標(biāo)值%判斷結(jié)束%確定X、Y最小值和最大值%設(shè)置圖形窗口7%顯示定位后的車牌圖像%定位后的車牌圖像標(biāo)注%保存定位切割后的車牌圖像車牌定位切割727374757677787980plate_img=imread('車牌圖像.jpg');plate_img1=rgb2gray(plate_img);figure(8)subplot(1,2,1)imshow(plate_img1)title('灰度圖像')subplot(1,2,2)imhist(plate_img1)title('灰度圖像直方圖')%讀取定位切割后的車牌圖像%轉(zhuǎn)換成灰度圖像%設(shè)置圖形窗口8%設(shè)置圖形位置%顯示灰度圖像%灰度圖像標(biāo)注%設(shè)置圖形位置%提取灰度圖像直方圖信息%灰度圖像直方圖標(biāo)注定位切割后的車牌圖像灰度處理8182838485868788plate_img2=histeq(plate_img1);figure(9)subplot(1,2,1)imshow(plate_img2)title('直方圖均衡化的圖像')subplot(1,2,2)imhist(plate_img2)title('均衡化圖像直方圖')%灰度圖像直方圖均衡化%設(shè)置圖形窗口9%設(shè)置圖形位置%顯示直方圖均衡化的圖像%直方圖均衡化的圖像標(biāo)注%設(shè)置圖形位置%提取均衡化圖像直方圖信息%均衡化圖像直方圖標(biāo)注灰度圖像直方圖均衡化89909192plate_img3=im2bw(plate_img2,0.76);figure(10)imshow(plate_img3)title('車牌二值化圖像')%圖像二值化%設(shè)置圖形窗口10%顯示車牌二值化圖像%車牌二值化圖像標(biāo)注圖像二值化處理93949596plate_img4=medfilt2(plate_img3);figure(11)imshow(plate_img4)title('中值濾波圖像')%圖像濾波%設(shè)置圖形窗口11%顯示中值濾波圖像%中值濾波圖像標(biāo)注圖像中值濾波979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164plate_img5=my_imsplit(plate_img4);[m,n]=size(plate_img5);s=sum(plate_img5);j=1;k1=1;k2=1;whilej~=nwhiles(j)==0j=j+1;endk1=j;whiles(j)~=0&&j<=n-1j=j+1;endk2=j+1;ifk2-k1>round(n/6.5)[val,num]=min(sum(plate_img5(:,k1+5:k2-5)));plate_img5(:,k1+num+5)=0;endendy1=10;y2=0.25;flag=0;word1=[];whileflag==0[m,n]=size(plate_img5);left=1;width=0;whilesum(plate_img5(:,width+1))~=0width=width+1;endifwidth<y1plate_img5(:,1:width)=0;plate_img5=my_imsplit(plate_img5);elsetemp=my_imsplit(imcrop(plate_img5,[1,1,width,m]));[m,n]=size(temp);all=sum(sum(temp));two_thirds=sum(sum(temp(round(m/3):2*round(m/3),:)));iftwo_thirds/all>y2flag=1;word1=temp;endplate_img5(:,1:width)=0;plate_img5=my_imsplit(plate_img5);endendfigure(12)subplot(2,4,1)imshow(plate_img5)[word2,plate_img5]=getword(plate_img5);subplot(2,4,2)imshow(plate_img5)[word3,plate_img5]=getword(plate_img5);subplot(2,4,3)imshow(plate_img5)[word4,plate_img5]=getword(plate_img5);subplot(2,4,4)imshow(plate_img5)[word5,plate_img5]=getword(plate_img5);subplot(2,3,4)imshow(plate_img5)[word6,plate_img5]=getword(plate_img5);subplot(2,3,5)imshow(plate_img5)[word7,plate_img5]=getword(plate_img5);subplot(2,3,6)imshow(plate_img5)%調(diào)取圖像再分割函數(shù)%獲取plate_img5圖像矩陣%求和%對j賦值為1%對k1賦值為1%對k2賦值為1%判斷j是否不等于n%判斷s(j)是否等于0%變量j加1%判斷結(jié)束%j賦值k1%對s(j)和j進(jìn)行判斷%變量j加1判斷結(jié)束%j+1賦值給k2%判斷k2-k1%尋找最小值%分割%判斷結(jié)束%判斷j結(jié)束%y1賦值為10%y2賦值為0.25%flag賦值為0%word1為空%判斷flag是否等于0%獲取plate_img5圖像大小%left賦值為1%width賦值為0%對求和進(jìn)行判斷%width加1%判斷結(jié)束%如果width小于y1%分割%調(diào)取圖像再分割函數(shù)否則%調(diào)取圖像再分割函數(shù)%獲取temp圖像矩陣%求和%求和%如果two_thirds/all大于y2%flag賦值為1%word1賦值為temp%判斷結(jié)束%分割%調(diào)取圖像再分割函數(shù)%判斷結(jié)束%判斷結(jié)束%設(shè)置圖形窗口12%設(shè)置圖形位置%顯示圖像plate_img5%分割出第2個(gè)字符%設(shè)置圖形位置%顯示圖像%分割出第3個(gè)字符%設(shè)置圖形位置%顯示圖像%分割出第4個(gè)字符%設(shè)置圖形位置%顯示圖像%分割出第5個(gè)字符%設(shè)置圖形位置%顯示圖像%分割出第6個(gè)字符%設(shè)置圖形位置%顯示圖像%分割出第7個(gè)字符%設(shè)置圖形位置%顯示圖像字符分割165166167168169170171172173174175176177178179180181182183184185186187188189190191192193figure(13)subplot(5,7,1),imshow(word1),title('1')subplot(5,7,2),imshow(word2),title('2')subplot(5,7,3),imshow(word3),title('3')subplot(5,7,4),imshow(word4),title('4')subplot(5,7,5),imshow(word5),title('5')subplot(5,7,6),imshow(word6),title('6')subplot(5,7,7),imshow(word7),title('7')word1=imresize(word1,[4020]);word2=imresize(word2,[4020]);word3=imresize(word3,[4020]);word4=imresize(word4,[4020]);word5=imresize(word5,[4020]);word6=imresize(word6,[4020]);word7=imresize(word7,[4020]);subplot(5,7,15),imshow(word1),title('11')subplot(5,7,16),imshow(word2),title('22')subplot(5,7,17),imshow(word3),title('33')subplot(5,7,18),imshow(word4),title('44')subplot(5,7,19),imshow(word5),title('55')subplot(5,7,20),imshow(word6),title('66')subplot(5,7,21),imshow(word7),title('77')imwrite(word1,'1.jpg')imwrite(word2,'2.jpg')imwrite(word3,'3.jpg')imwrite(word4,'4.jpg')imwrite(word5,'5.jpg')imwrite(word6,'6.jpg')imwrite(word7,'7.jpg')%設(shè)置圖形窗口13%顯示第1個(gè)字符%顯示第2個(gè)字符%顯示第3個(gè)字符%顯示第4個(gè)字符%顯示第5個(gè)字符%顯示第6個(gè)字符%顯示第7個(gè)字符%壓縮第1個(gè)字符%壓縮第2個(gè)字符%壓縮第3個(gè)字符%壓縮第4個(gè)字符%壓縮第5個(gè)字符%壓縮第6個(gè)字符%壓縮第7個(gè)字符%顯示壓縮后第1個(gè)字符%顯示壓縮后第2個(gè)字符%顯示壓縮后第3個(gè)字符%顯示壓縮后第4個(gè)字符%顯示壓縮后第5個(gè)字符%顯示壓縮后第6個(gè)字符%顯示壓縮后第7個(gè)字符%創(chuàng)建第1個(gè)字符圖像%創(chuàng)建第2個(gè)字符圖像%創(chuàng)建第3個(gè)字符圖像%創(chuàng)建第4個(gè)字符圖像%創(chuàng)建第5個(gè)字符圖像%創(chuàng)建第6個(gè)字符圖像%創(chuàng)建第7個(gè)字符圖像字符顯示和創(chuàng)建194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241liccode=char(['0':'9''A':'Z''京遼魯陜蘇豫浙貴']);subBw2=zeros(40,20);num=1;fori=1:7ii=int2str(i);word=imread([ii,'.jpg']);segBw2=imresize(word,[40,20],'nearest');segBw2=im2bw(segBw2,0.5);ifi==1kMin=37;kMax=44;elseifi==2kMin=11;kMax=36;elseifi>=3kMin=1;kMax=36;endl=1;fork=kMin:kMaxfname=strcat('字符模板\',liccode(k),'.jpg');samBw2=imread(fname);%samBw2=im2bw(samBw2,0.5);fori1=1:40forj1=1:20subBw2(i1,j1)=segBw2(i1,j1)-samBw2(i1,j1);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人體胚胎發(fā)育:增強(qiáng)現(xiàn)實(shí)訓(xùn)練課件
- 評估報(bào)告內(nèi)部復(fù)審制度
- 要嚴(yán)守值班值守制度
- 2025年洛陽中信醫(yī)院筆試及答案
- 2025年沈陽醫(yī)院事業(yè)編5月考試及答案
- 2025年采編崗位筆試試題及答案
- 2025年城投造價(jià)崗位筆試及答案
- 2025年彭州市事業(yè)單位考試面試及答案
- 2025年教資不需要筆試的面試及答案
- 2025年獨(dú)山子石化筆試及答案
- 安全生產(chǎn)安全風(fēng)險(xiǎn)分級(jí)管控制度
- ktv衛(wèi)生應(yīng)急預(yù)案管理制度
- 2026簡易標(biāo)準(zhǔn)版離婚協(xié)議書
- 湖南省長沙市天心區(qū)長郡中學(xué)2026屆高一生物第一學(xué)期期末統(tǒng)考試題含解析
- 2025年陜西藝術(shù)職業(yè)學(xué)院輔導(dǎo)員考試真題
- 2025-2030中國低壓電器行業(yè)融資渠道及應(yīng)用領(lǐng)域發(fā)展現(xiàn)狀研究報(bào)告
- 密封件管理制度及流程規(guī)范
- 2026年英語首考浙江試卷及答案
- 煙臺(tái)交通集團(tuán)有限公司管理培訓(xùn)生招聘參考題庫必考題
- 倉儲(chǔ)安全檢查標(biāo)準(zhǔn)及執(zhí)行流程
- 2025FIGO指南:肝病與妊娠解讀課件
評論
0/150
提交評論