蘇大應(yīng)用課程設(shè)計(jì)-車牌識(shí)別_第1頁
蘇大應(yīng)用課程設(shè)計(jì)-車牌識(shí)別_第2頁
蘇大應(yīng)用課程設(shè)計(jì)-車牌識(shí)別_第3頁
蘇大應(yīng)用課程設(shè)計(jì)-車牌識(shí)別_第4頁
蘇大應(yīng)用課程設(shè)計(jì)-車牌識(shí)別_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

圖像處理在智能交通中的應(yīng)用——基于MATLAB的車牌識(shí)別 摘要:針對交通管理系統(tǒng)的信息化、智能化發(fā)展趨勢,通過對車牌特征和定位技術(shù)的探索,提出了汽車牌照字符識(shí)別系統(tǒng)。本文采用多種濾波技術(shù)對車牌進(jìn)行濾波處理,robert邊緣檢測算子進(jìn)行邊緣檢測,運(yùn)用區(qū)域分割法實(shí)現(xiàn)了車牌字符的分割,最后簡述了字符識(shí)別原理和模板匹配在字符識(shí)別中的應(yīng)用方法。由實(shí)驗(yàn)結(jié)果可知,系統(tǒng)能準(zhǔn)確實(shí)現(xiàn)車牌的定位、分割和識(shí)別,具有良好的性能。關(guān)鍵詞:車牌識(shí)別,MATLAB,數(shù)字圖像處理,模式識(shí)別,智能第一部分引言隨著汽車數(shù)量的增加,城市交通狀況日益受到人們的重視,如何進(jìn)行有效的交通管理更是成為了人們關(guān)注的焦點(diǎn)。針對此問題,人們運(yùn)用新的科學(xué)技術(shù),相繼研制開發(fā)出了各種交通道路監(jiān)視、管理系統(tǒng)。這些系統(tǒng)通過車輛檢測裝置對過往的車輛實(shí)施檢測,提取有關(guān)交通數(shù)據(jù),達(dá)到監(jiān)控、管理和指揮交通的目的。因此,智能交通系統(tǒng)ITS(intelligenttrafficsystem)已成為世界交通領(lǐng)域研究的重要課題。車牌識(shí)別系統(tǒng)LPR(1icenseplaterecognition)作為智能交通系統(tǒng)的一個(gè)重要組成部分,已在高速公路、城市交通和停車場等項(xiàng)目的管理中占有無可取代的重要地位。它在不影響汽車狀態(tài)的情況下,由計(jì)算機(jī)自動(dòng)完成車牌的識(shí)別,從而降低交通管理工作的復(fù)雜度。本文應(yīng)用圖像處理技術(shù)、車牌定位技術(shù)、車牌校正技術(shù)、車牌分割技術(shù)、字符特征提取方法和模版匹配識(shí)別技術(shù)等解決了車輛牌照識(shí)別問題,并提出了車牌識(shí)別系統(tǒng)的設(shè)計(jì)方案。第二部分車牌識(shí)別的原理和方法通常,車牌識(shí)別過程分為圖像預(yù)處理、車牌定位、車牌校正、車牌分割和車牌識(shí)別五個(gè)部分。①圖像預(yù)處理:在整個(gè)車牌識(shí)別系統(tǒng)中,由于采集進(jìn)來的圖像為真彩圖,再加上實(shí)際采集環(huán)境的影響以及采集硬件等原因,圖像質(zhì)量并不高,其背景和噪聲會(huì)影響字符的正確分割和識(shí)別,所以在進(jìn)行車牌分割和識(shí)別處理之前,需要先對車牌圖像進(jìn)行圖像預(yù)處理操作。②車牌定位:首先對車牌的二值圖片進(jìn)行形態(tài)學(xué)濾波,使車牌區(qū)域形成一個(gè)連通區(qū)域,然后根據(jù)車牌的先驗(yàn)知識(shí)對所得到的連通區(qū)域進(jìn)行篩選,獲取車牌區(qū)域的具體位置,完成從圖片中提取車牌的任務(wù)。③車牌校正:由于捕捉圖片的攝像頭與車身的角度問題,得到的車牌圖片不是水平的。為了順利進(jìn)行后續(xù)的分割和識(shí)別,必須對車牌進(jìn)行角度校正。在此,使用了Radon變換來對車牌進(jìn)行校正。④車牌分割:首先對車牌進(jìn)行水平投影,去除水平邊框;再對車牌進(jìn)行垂直投影。通過對車牌進(jìn)行投影分析可知,與最大值峰中心對應(yīng)的為車牌中第二個(gè)字符和第三個(gè)字符的間隔,與第二大峰中心距離對應(yīng)的即為車牌字符的寬度,并以此為依據(jù)對車牌進(jìn)行分割。⑤字符識(shí)別:本文采用模板匹配方法來對車牌進(jìn)行識(shí)別。識(shí)別過程中,首先建立標(biāo)準(zhǔn)字庫,再將分割所得到的字符進(jìn)行歸一化,將歸一化處理后的字符與標(biāo)準(zhǔn)字庫里的字符逐一比較,最后把誤差最小的字符作為結(jié)果顯示出來。本文采用成熟的數(shù)字圖像處理技術(shù)和Matlab仿真工具[3],使得文中所提出的算法得以實(shí)現(xiàn)。如圖1所示為采用Matlab實(shí)現(xiàn)車牌字符分割技術(shù)的程序流程。開始開始車牌定位車牌濾波字符分隔字符識(shí)別結(jié)束圖1程序流程圖第三部分圖像預(yù)處理3.1灰度化數(shù)字圖像分為彩色圖像和灰度圖像。在RGB模型中,如果R=G=B,則表示一種灰度顏色,其中R=G=B的值叫做灰度值[4],通常用g來表示。將彩色圖像轉(zhuǎn)換為灰度圖像的過程叫做灰度化處理。由于彩色圖像的存儲(chǔ)空間較大,因此,在對圖像進(jìn)行識(shí)別等處理過程中,需要將彩色圖像轉(zhuǎn)換為灰度圖像,以加快后續(xù)工作的處理速度。圖像二值化公式:g(x,y)=其中,f(x,y)為原始灰度圖像,g(x,y)為轉(zhuǎn)化后圖像,T為閾值。在Matlab中,實(shí)現(xiàn)灰度化的程序語句如下:I=imread(‘chepai.jpg’);//讀入原始圖像figure,imshow(I);title(‘原始圖像’);圖3.1車牌原圖3.2圖像二值化灰度圖像有256個(gè)灰度級的單色圖像,多級別圖像能夠呈現(xiàn)出較為豐富的明暗度,但對于目標(biāo)搜索來說,總是希望盡可能地減少背景像素的干擾而保存或增強(qiáng)目標(biāo)區(qū)的色素度。圖像的二值化可以把像素灰度級分成黑與白兩級,即把原灰度圖像轉(zhuǎn)化為二值圖像。在Matlab語句中輸入:I1=rgb2gray(I);//灰度化figure,imshow(I1);title(‘灰度圖像’);figure(2),subplot(1,2,1),imshow(I1);title('灰度圖');figure(2),subplot(1,2,2),imhist(I1);title('灰度圖直方圖');圖3.2(a)灰度圖與灰度直方圖圖3.2(b)車牌二值圖像3.4robert算子邊緣檢測邊緣是指圖像局部亮度變化最顯著的部分[5]。邊緣主要存在于目標(biāo)與目標(biāo)、目標(biāo)與背景、區(qū)域與區(qū)域(包括不同色彩)之間,是圖像分割、紋理特征提取和形狀特征提取等圖像分析的重要基礎(chǔ),圖像分析和理解的第一步常常是邊緣檢測。物體的邊緣是圖像最基本的特征,邊緣是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合。邊緣廣泛存在于物體與背景之間、物體與物體之間、基元與基元之間,因此它是圖像分割所依賴的重要特征之一。robert邊緣算子是一種利用局部差分算子尋找邊緣的算子,它由下式給出:g(x,y)=其中,f(x,y)、f(x+1,y)、f(x,y+1)、f(x+1,y+1)分別為4領(lǐng)域的坐標(biāo)。robert算子是22算子模板,如下圖示:100-101-10為得到較好的邊緣檢測性能,采用robert算子對圖像進(jìn)行邊緣提取。Roberts邊緣檢測是一種比較新的邊緣檢測算子,它利用高斯函數(shù)的一階微分,能在噪聲抑制和邊緣檢測之間取得很好的平衡。與其它邊緣算子相比,robert邊緣算子邊緣定位準(zhǔn),但是對噪聲敏感。適用于邊緣明顯且噪聲較少的圖像分割。robert邊緣檢測算子是一種利用局部差分算子尋找邊緣的算子,robert算子圖像處理后結(jié)果邊緣不是很平滑。經(jīng)分析,由于robert算子通常會(huì)在圖像邊緣附近的區(qū)域內(nèi)產(chǎn)生較寬的響應(yīng),故采用上述算子檢測的邊緣圖像常需做細(xì)化處理,邊緣定位的精度不是很高。圖3.4robert算子邊緣檢測3.5形態(tài)學(xué)濾波數(shù)學(xué)形態(tài)是一種非線性濾波方法,可以用于抑制噪聲,進(jìn)行特征提取、邊緣檢測、圖像分割等圖像處理操作。形態(tài)學(xué)濾波有四種基礎(chǔ)操作:腐蝕、膨脹、開操作和閉操作。腐蝕的運(yùn)算符為,X用S來腐蝕寫作XS,其定義為XS={x|S(x)X}上式表明X用S腐蝕的結(jié)果是所有x的集合,其中B平移x后仍在A中。換句話說,用S來腐蝕X得到的集合是S完全包括X中時(shí)S的原點(diǎn)位置的集合。車牌腐蝕圖像見圖3.5圖3.5腐蝕后圖像3.6對圖像進(jìn)行濾波后的結(jié)果第四部分車牌定位汽車牌照的定位是指從攝人的汽車圖像中找到汽車牌照所在的位置,并把含有車牌的子區(qū)域提取出來。從編程實(shí)現(xiàn)的角度來看,就是針對某汽車圖像,通過運(yùn)行某個(gè)定位算法,確定車牌子區(qū)域的對角坐標(biāo)。顯然在汽車牌照識(shí)別系統(tǒng)中,車牌定位準(zhǔn)確與否直接影響字符識(shí)別的準(zhǔn)確率。通過查找初始行top:從上向下掃描,如果該行所有像素值為0(背景),繼續(xù)掃描,直到像素值為1(字符)的行(初始行),則退出掃描循環(huán)。查找最后一行bottom,初始列l(wèi)eft,最后一列right,思路相似。4.1車牌分割在定位出車牌區(qū)域后,為了對車牌進(jìn)行識(shí)別,必須把車牌字符進(jìn)行切分,然后送人字符識(shí)別系統(tǒng)。字符分割的任務(wù)就是把多行或多字符圖像中的每個(gè)字符從整個(gè)圖像中分割出來,使其成為單個(gè)字符。車牌分割的難點(diǎn)在于噪聲、粘連以及斷裂對字符的影響。本文所采用的方法是區(qū)域分割法。其原理是利用同一區(qū)域內(nèi)灰度值的相似性,將相似區(qū)域合并,不同區(qū)域分開。如下圖所示:綜上,對車牌圖像進(jìn)行第一步進(jìn)行定位處理,第二步進(jìn)行分割處理。如圖4.1所示。圖4.1車牌定位和分割后圖像分割后的圖像由于字符大小不統(tǒng)一,需要?dú)w一化處理。本文中采用40*20大小模板來將原來不相同的字符統(tǒng)一到同一尺寸,達(dá)到標(biāo)準(zhǔn)化圖像。4.3車牌識(shí)別字符識(shí)別是對車牌上的漢字、字母和數(shù)字進(jìn)行確認(rèn)的過程,是系統(tǒng)的核心。本文采用的是基于模板匹配的字符識(shí)別方法。4.4構(gòu)建標(biāo)準(zhǔn)字庫本文采用的是基于模版匹在構(gòu)建標(biāo)準(zhǔn)字庫的過程中,用繪圖工具繪制了A—Z、0-9和車牌地區(qū)名,并且以32行x16列的大小黑體字保存。樣本庫中的編碼規(guī)則如下。①數(shù)字0-9,文件名為0.jpg-Sam9.jpg;②字母A-Z,文件名為A.jpg-Z.jpg;③7個(gè)省別漢字,文件名為京.jpg,遼.jpg,魯.jpg,陜.jpg,蘇.jpg,豫.jpg,浙.jpg。4.5識(shí)別過程確定中心距離的方法是:將模版庫中的字符圖像矩陣與待識(shí)別字符圖像矩陣作減法,求最小誤差(即其相似度),將最相似的模板庫中的字符圖像矩陣的代碼作為識(shí)別結(jié)果并顯示出來。實(shí)驗(yàn)結(jié)果表明,使用模版匹配方法可以成功地將車牌識(shí)別出來。第五部分結(jié)束語本文針對智能交通系統(tǒng)中的車牌識(shí)別問題,采用Matlab設(shè)計(jì)開發(fā)了車牌識(shí)別系統(tǒng)。通過綜合采用圖像處理技術(shù),實(shí)現(xiàn)了車牌的定位、傾斜校正、濾波、字符分割和識(shí)別功能,實(shí)驗(yàn)結(jié)果也證明了本文所提出的車牌識(shí)別方法是準(zhǔn)確、可行的。附錄:源程序如下:function[d]=main(jpg)closeallclc%I=imread('car1.JPG');I=imread('chepai.jpg');figure(1),imshow(I);title('原圖')I1=rgb2gray(I);figure(2),subplot(1,2,1),imshow(I1);title('灰度圖');figure(2),subplot(1,2,2),imhist(I1);title('灰度圖直方圖');I2=edge(I1,'robert',0.15,'both');figure(3),imshow(I2);title('robert算子邊緣檢測')se=[1;1;1];I3=imerode(I2,se);figure(4),imshow(I3);title('腐蝕后圖像');se=strel('rectangle',[25,25]);I4=imclose(I3,se);figure(5),imshow(I4);title('平滑圖像的輪廓');I5=bwareaopen(I4,2000);figure(6),imshow(I5);title('從對象中移除小對象');[y,x,z]=size(I5);myI=double(I5);ticBlue_y=zeros(y,1);fori=1:yforj=1:xif(myI(i,j,1)==1)Blue_y(i,1)=Blue_y(i,1)+1;%藍(lán)色像素點(diǎn)統(tǒng)計(jì)endendend[tempMaxY]=max(Blue_y);%Y方向車牌區(qū)域確定PY1=MaxY;while((Blue_y(PY1,1)>=5)&&(PY1>1))PY1=PY1-1;endPY2=MaxY;while((Blue_y(PY2,1)>=5)&&(PY2<y))PY2=PY2+1;endIY=I(PY1:PY2,:,:);%%%%%%X方向%%%%%%%%%Blue_x=zeros(1,x);%進(jìn)一步確定x方向的車牌區(qū)域forj=1:xfori=PY1:PY2if(myI(i,j,1)==1)Blue_x(1,j)=Blue_x(1,j)+1;endendendPX1=1;while((Blue_x(1,PX1)<3)&&(PX1<x))PX1=PX1+1;endPX2=x;while((Blue_x(1,PX2)<3)&&(PX2>PX1))PX2=PX2-1;endPX1=PX1+50;%對車牌區(qū)域的校正PX2=PX2-50;PY1=PY1+45;PY2=PY2-45;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title('行方向合理區(qū)域');figure(7),subplot(1,2,2),imshow(dw),title('定位剪切后的彩色車牌圖像')imwrite(dw,'dw.jpg');[filename,filepath]=uigetfile('dw.jpg','輸入一個(gè)定位裁剪后的車牌圖像');jpg=strcat(filepath,filename);a=imread('dw.jpg');b=rgb2gray(a);imwrite(b,'1.車牌灰度圖像.jpg');figure(8);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)/2);%T為二值化的閾值[m,n]=size(b);d=(double(b)>=T);%d:二值圖像imwrite(d,'2.車牌二值圖像.jpg');figure(8);subplot(3,2,2),imshow(d),title('2.車牌二值圖像')figure(8),subplot(3,2,3),imshow(d),title('3.均值濾波前')%濾波h=fspecial('average',3);d=im2bw(round(filter2(h,d)));imwrite(d,'4.均值濾波后.jpg');figure(8),subplot(3,2,4),imshow(d),title('4.均值濾波后')%某些圖像進(jìn)行操作%膨脹或腐蝕%se=strel('square',3);%使用一個(gè)3X3的正方形結(jié)果元素對象對創(chuàng)建的圖像進(jìn)行膨脹%'line'/'diamond'/'ball'...se=eye(2);%eye(n)returnsthen-by-nidentitymatrix單位矩陣[m,n]=size(d);ifbwarea(d)/m/n>=0.365d=imerode(d,se);elseifbwarea(d)/m/n<=0.235d=imdilate(d,se);endimwrite(d,'5.膨脹或腐蝕處理后.jpg');figure(8),subplot(3,2,5),imshow(d),title('5.膨脹或腐蝕處理后')%尋找連續(xù)有文字的塊,若長度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割d=qiege(d);[m,n]=size(d);figure,subplot(2,1,1),imshow(d),title(n)k1=1;k2=1;s=sum(d);j=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(d(:,[k1+5:k2-5])));d(:,k1+num+5)=0;%分割endend%再切割d=qiege(d);%切割出7個(gè)字符y1=10;y2=0.25;flag=0;word1=[];whileflag==0[m,n]=size(d);left=1;wide=0;whilesum(d(:,wide+1))~=0wide=wide+1;endifwide<y1%認(rèn)為是左側(cè)干擾d(:,[1:wide])=0;d=qiege(d);elsetemp=qiege(imcrop(d,[11widem]));[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;%WORD1endd(:,[1:wide])=0;d=qiege(d);endend%分割出第二個(gè)字符[word2,d]=getword(d);%分割出第三個(gè)字符[word3,d]=getword(d);%分割出第四個(gè)字符[word4,d]=getword(d);%分割出第五個(gè)字符[word5,d]=getword(d);%分割出第六個(gè)字符[word6,d]=getword(d);%分割出第七個(gè)字符[word7,d]=getword(d);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');[m,n]=size(word1);%商用系統(tǒng)程序中歸一化大小為40*20,此處演示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('1');subplot(5,7,16),imshow(word2),title('2');subplot(5,7,17),imshow(word3),title('3');subplot(5,7,18),imshow(word4),title('4');subplot(5,7,19),imshow(word5),title('5');subplot(5,7,20),imshow(word6),title('6');subplot(5,7,21),imshow(word7),title('7');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');liccode=char(['0':'9''A':'Z''蘇豫陜魯']);%建立自動(dòng)識(shí)別字符代碼表SubBw2=zeros(40,20);l=1;forI=1:7ii=int2str(I);t=imread([ii,'.jpg']);SegBw2=imresize(t,[4020],'nearest');ifl==1%第一位漢字識(shí)別kmin=37;kmax=40;elseifl==2%第二位A~Z字母識(shí)別kmin=11;kmax=36;elsel>=3%第三位以后是字母或數(shù)字識(shí)別kmin=1;kmax=36;endfork2=kmin:kmaxfname=strcat('字符模板\',liccode(k2),'.jpg');SamBw2=imread(fname);fori=1:40forj=1:20SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);endend%以上相當(dāng)于兩幅圖相減得到第三幅圖Dmax=0;fork1=1:40forl1=1:20if(SubBw2(k1,l1)>0|SubBw2(k1,l1)<0)Dmax=Dmax+1;endendendError(k2)=Dmax;endError1=Error(kmin:kmax);MinError=min(Error1);findc=find(Error1==MinError);Code(l*2-1)=liccode(findc(1)+kmin-1);Code(l*2)='';l=l+1;endfigure(10),subplot(5,7,1:7),imshow(dw),title('第一步車牌定位'),xlabel({'','第二步車牌分割'});subplot(6,7,15),imshow(word1);subplot(6,7,16),imshow(word2);subplot(6,7,17),imshow(word3);subplot(6,7,18),imshow(word4);subplot(6,7,19),imshow(word5);subplot(6,7,20),imshow(word6);subplot(6,7,21),imshow(word7);

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論