數(shù)字圖像處理課程設(shè)計(jì)報(bào)告---車輛識別_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)字圖像處理</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p> 課設(shè)題目:車輛識別</p><p> 學(xué) 院:</p><p> 專 業(yè):</p><p> 班 級:</p><p&

2、gt; 姓 名:</p><p> 學(xué) 號:</p><p> 指導(dǎo)教師:</p><p> 2011 年11月20日</p><p>  課程設(shè)計(jì)報(bào)告撰寫要求</p><p><b>  1、頁面設(shè)置</b></p><p>  紙張大小設(shè)置為縱向A4,頁邊距

3、設(shè)置為:上3.8厘米,下 3.5厘米,左3厘米,右3厘米,頁眉設(shè)置為3厘米,頁腳設(shè)置為2.7厘米,文檔網(wǎng)絡(luò)設(shè)置為指定行和字符網(wǎng)格,每行34字,每頁34行。</p><p><b>  2、段落及字體設(shè)置</b></p><p>  除各級標(biāo)題外,首行縮進(jìn)2字符;圖、表及圖題、表題首行不縮進(jìn),居中放置;圖表不應(yīng)超出版心范圍;行距采用單倍行距。</p>&l

4、t;p>  正文中文采用小四號宋體,英文采用新羅馬字體(Times New Roman),段前0磅,斷后0磅;</p><p>  一級標(biāo)題采用小二號黑體,段前12磅,段后12磅</p><p>  二級標(biāo)題采用小三號黑體,段前6磅,段后6磅</p><p>  三級標(biāo)題采用四號黑體,段前6磅,段后0磅</p><p><b>

5、;  3、裝訂要求</b></p><p>  采用左側(cè)裝訂,訂兩釘。</p><p>  不要刪除行尾的分節(jié)符,此行不會被打印</p><p><b>  目 錄</b></p><p>  一. 課程設(shè)計(jì)任務(wù)1</p><p>  二. 課程設(shè)計(jì)原理及設(shè)計(jì)方案2</p&

6、gt;<p>  三. 課程設(shè)計(jì)的步驟和結(jié)果3</p><p>  四. 課程設(shè)計(jì)總結(jié)4</p><p><b>  五. 設(shè)計(jì)體會5</b></p><p><b>  六. 參考文獻(xiàn)6</b></p><p><b>  課程設(shè)計(jì)任務(wù)</b></

7、p><p>  在交通管理過程中,通常采用視頻監(jiān)控方式對闖紅燈和超速等違章車輛進(jìn)行監(jiān)督。對違章車輛,需要自動檢測車牌信息,提取車牌號碼,以便查找車主信息和監(jiān)督管理。國內(nèi)常用的一般車牌通常是是藍(lán)底白字,長寬比3:1。</p><p>  1、對車牌圖像進(jìn)行預(yù)處理,然后進(jìn)行車牌定位;</p><p><b>  2、進(jìn)行字符分割;</b></p&

8、gt;<p>  2、對車牌中的數(shù)字、字母和漢字進(jìn)行提取和識別;</p><p>  3、要求自行設(shè)計(jì)方案、編寫代碼實(shí)現(xiàn)上述功能,并設(shè)計(jì)車牌識別的軟件界面。</p><p>  課程設(shè)計(jì)原理及設(shè)計(jì)方案</p><p><b>  1.系統(tǒng)簡述</b></p><p>  一個(gè)完整的車牌識別系統(tǒng)閉應(yīng)包括車輛檢

9、測、圖像采集、圖像預(yù)處理、車牌定位、字符分割、字符識別等單元。當(dāng)車輛到達(dá)觸發(fā)圖像采集單元時(shí),系統(tǒng)采集當(dāng)前的視頻圖像。車輛識別單元對圖像進(jìn)行處理,定位出牌照位置,再將車牌中的字符分割出來進(jìn)行識別,然后組成車牌號碼輸出。車牌識別系統(tǒng)原理如圖l所示。</p><p> ?。?)圖像預(yù)處理:對汽車圖像進(jìn)行圖像轉(zhuǎn)換、圖像增強(qiáng)和邊緣檢測等。</p><p> ?。?)車牌定位:從預(yù)處理后的汽車圖像中分

10、割出車牌圖像。即在一幅車輛圖像中找到車牌所在的位置。</p><p> ?。?)字符分割:對車牌圖像進(jìn)行幾何校正、去噪、二值化以及字符分割以從車牌圖像中分離出組成車牌號碼的單個(gè)字符圖像</p><p> ?。?)字符識別:對分割出來的字符進(jìn)行預(yù)處理(二值化、歸一化),然后分析提取,對分割出的字符圖像進(jìn)行識別給出文本形式的車牌號碼。</p><p>  為了用于牌照的

11、分割和牌照字符的識別,原始圖象應(yīng)具有適當(dāng)?shù)牧炼?,較大的對比度和清晰可辯的牌照圖象。但由于該系統(tǒng)的攝像部分工作于開放的戶外環(huán)境,加之車輛牌照的整潔度、自然光照條件、拍攝時(shí)攝像機(jī)與牌照的矩離和角度以及車輛行駛速度等因素的影響,牌照圖象可能出現(xiàn)模糊、歪斜和缺損等嚴(yán)重缺陷,因此需要對原始圖象進(jìn)行識別前的預(yù)處理。</p><p>  牌照的定位和分割是牌照識別系統(tǒng)的關(guān)鍵技術(shù)之一,其主要目的是在經(jīng)圖象預(yù)處理后的原始灰度圖象中

12、確定牌照的具體位置,并將包含牌照字符的一塊子圖象從整個(gè)圖象中分割出來,供字符識別子系統(tǒng)識別之用,分割的準(zhǔn)確與否直接關(guān)系到整個(gè)牌照字符識別系統(tǒng)的識別率。</p><p>  由于拍攝時(shí)的光照條件、牌照的整潔程度的影響,和攝像機(jī)的焦距調(diào)整、鏡頭的光學(xué)畸變所產(chǎn)生的噪聲都會不同程度地造成牌照字符的邊界模糊、細(xì)節(jié)不清、筆劃斷開或粗細(xì)不均,加上牌照上的污斑等缺陷,致使字符提取困難,進(jìn)而影響字符識別的準(zhǔn)確性。因此,需要對字符在

13、識別之前再進(jìn)行一次針對性的處理。</p><p>  車牌識別的最終目的就是對車牌上的文字進(jìn)行識別。識別方法目前主要有基于模板匹配算法和基于人工神經(jīng)網(wǎng)絡(luò)算法。</p><p><b>  2.圖像預(yù)處理</b></p><p>  圖2 預(yù)處理及邊緣提取流程圖</p><p><b>  2.1灰度變換<

14、/b></p><p>  輸入的彩色圖像包含大量顏色信息,會占用較多的存儲空間,且處理時(shí)也會降低系統(tǒng)的執(zhí)行速度,因此對圖像進(jìn)行識別等處理時(shí).常將彩色圖像轉(zhuǎn)換為灰度圖像,以加快處理速度??蓪D像進(jìn)行灰度化處理、提取背景圖像、增強(qiáng)處理、圖像二值化,邊緣檢測、濾波等處理。然后采用robert算子進(jìn)行邊緣檢測,再用imopen和imclose對所得二值圖像作開、閉操作進(jìn)行濾波。</p><p&

15、gt;  彩色圖像分為R、G、B三個(gè)分量,分別顯示出紅、綠、藍(lán)等各種顏色,灰度化就是使彩色的R、G、B 分量相等的過程?;叶戎荡蟮南袼攸c(diǎn)比較亮(像素值最大為255,為白色) ,反之比較暗(像素值最小為 0,是黑色) 。 </p><p>  圖像灰度化的算法主要有以下 3 種: </p><p>  1)最大值法:使轉(zhuǎn)化后R、G、B的值等于轉(zhuǎn)化前 3 個(gè)值中最大的一個(gè),即:R=G=B=ma

16、x(R,G,B),這種方法轉(zhuǎn)換的灰度圖亮度很高。</p><p>  2)平均值法:使轉(zhuǎn)化后R、G、B的值為轉(zhuǎn)化前R、G、B的平均值 R=G=B=(R+G+B)/3 這種方法產(chǎn)生的灰度圖像比較柔和。</p><p>  3)加權(quán)平均值法:按照一定的權(quán)值,對R、G、B的值加權(quán)平均,即: R=G=B=(R+G+B)/3,其中、、分別為 R、G、B 的權(quán)值。、、取不同的值,將形成不同的灰度圖像。

17、由于人眼對綠色最為敏感,紅色次之,對藍(lán)色的敏感性最低,因此使>>將得到較易識別的灰度圖像。一般情況下,當(dāng)=0.299、=0.587、=0.114時(shí),得到的灰度圖像效果最好。</p><p><b>  2.2邊緣提取</b></p><p>  數(shù)字圖像的邊緣檢測是圖像分割、目標(biāo)區(qū)域的識別、區(qū)域形狀提取等圖像分析領(lǐng)域十分重要的基礎(chǔ)。邊緣是圖像的重要特征,圖

18、像理解和分析的第一步往往就是邊緣檢測。目前,邊緣檢測已成為計(jì)算機(jī)視覺研究領(lǐng)域最活躍的課題之一,在工程應(yīng)用中占有十分重要的地位。車牌的一個(gè)重要特征就是在該區(qū)域存在大量的邊緣信息,所以邊緣檢測對于我們進(jìn)行車牌識別來說也是相當(dāng)重要的。</p><p>  邊緣是以圖像的局部特征不連續(xù)的形式出現(xiàn)的,也就是指圖像局部亮度變化最顯著的部分,如灰度值的突變、顏色的突變、紋理結(jié)構(gòu)的突變等,同時(shí)邊緣也是不同區(qū)域的分界處。圖像邊緣有

19、方向和幅度兩個(gè)特性,通常沿邊緣的走向灰度變化平緩,垂直于邊緣走向灰度變化劇烈。由于邊緣是圖像上灰度變化最劇烈的地方,傳統(tǒng)的邊緣檢測就利用這個(gè)特點(diǎn),通過計(jì)算圖像中像素的梯度值來確定邊緣點(diǎn)。</p><p>  常用的圖像邊緣提取算子有Roberts算子、sobel算子、Prewitt算子、Laplacian算子等,它們的模板分別如下:</p><p>  (1)Roberts梯度算子:<

20、;/p><p>  (2)Sobel算子:</p><p>  (3)Prewitc算子:</p><p>  (4)Laplacian算子:</p><p><b>  3.車牌定位</b></p><p>  自然環(huán)境下,汽車圖像背景復(fù)雜,光照不均勻,在自然背景中準(zhǔn)確地確定牌照區(qū)域是整個(gè)圖像識別過

21、程中的關(guān)鍵。首先對采集到的圖像進(jìn)行大范圍相關(guān)搜索,找到符合汽車牌照特征的若干區(qū)域作為候選區(qū),然后對這些侯選區(qū)域做進(jìn)一步分析、評判,最后選定一個(gè)最佳區(qū)域作為牌照區(qū)域。將其從圖像中分割嘲出來,同時(shí)要考慮車牌傾斜問題。算法流程如下:</p><p>  (1)對二值圖像進(jìn)行區(qū)域提取。計(jì)算并比較區(qū)域特征參數(shù),提取車牌區(qū)域。進(jìn)行閉運(yùn)算,可使得水平相鄰的邊緣連接成為連通區(qū)域;進(jìn)行開運(yùn)算可使得車牌區(qū)域與其它背景區(qū)域分開,成為獨(dú)

22、立的連通域。</p><p>  (2)計(jì)算包含所標(biāo)記區(qū)域的最小寬和高。并根據(jù)先前知識,提取并顯示更接近的車牌二子值圖。</p><p>  (3)通過計(jì)算車牌旋轉(zhuǎn)角度解決車牌傾斜問題。由于車牌傾斜導(dǎo)致投影效果峰谷不明顯,需車牌矯正處理,采取線性擬合方法,計(jì)算出車牌上邊或下邊圖像值為1的點(diǎn)擬合直線與水平X軸的夾角。</p><p><b>  4.字符分割

23、</b></p><p>  完成牌照區(qū)域的定位后,再將牌照區(qū)域分割為單個(gè)字符,可采用垂直投影法。由于字符在垂直方向上的投影必然在字符間或字符內(nèi)的間隙處取得局部最小值.并且該位置應(yīng)滿足牌照的字符書寫格式、字符、尺寸限制等條件。利用垂直投影法實(shí)現(xiàn)復(fù)雜環(huán)境下汽車圖像中的字符分割效果較好。</p><p>  通過分析計(jì)算字符的水平投影和垂直投影,可獲得車牌字符高度、字符頂行與尾行、

24、字符寬度、每個(gè)字符的中心位置,以方便提取分割字符。然后計(jì)算車牌垂直投影,去掉車牌垂直邊框,獲取車牌及字符平均寬度。最后計(jì)算車牌每個(gè)字符的中心位置和最大字符寬度,提取分割字符,其算法流程如圖3所示。</p><p>  圖3車牌分割的MATLAB算法流程</p><p>  此處采用的方法為尋找連續(xù)有文字的塊,若長度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割。算法如下:</p>

25、;<p><b>  5.字符識別</b></p><p>  字符識別方法主要有基于模板匹配算法和基于人工神經(jīng)網(wǎng)絡(luò)算法?;谀0迤ヅ渌惴ㄊ鞘紫葘⒎指詈蟮淖址祷?,并將其尺寸縮放為字符數(shù)據(jù)庫中模板的大小,然后與所有模板進(jìn)行匹配,最后選取最佳匹配作為結(jié)果。建立數(shù)字庫對該方法在車牌識別過程中很重要,數(shù)字庫準(zhǔn)確才能保證檢測出的數(shù)據(jù)正確?;谌斯ど窠?jīng)元網(wǎng)絡(luò)的算法有兩種,一種是先對特征

26、提取待識別字符,然后用所獲得的特征訓(xùn)練神經(jīng)網(wǎng)絡(luò)分配器;另一種是直接將待處理圖像輸入網(wǎng)絡(luò)由網(wǎng)絡(luò)自動實(shí)現(xiàn)特征提取直至識別結(jié)果。模板匹配實(shí)現(xiàn)簡單,當(dāng)字符較規(guī)整時(shí),對字符圖像的缺損、污跡干擾適應(yīng)力強(qiáng)且識別率高。因此,這里將模板匹配作為車牌字符識別的主要方法。</p><p>  模板匹配是圖象識別方法中最具代表性的基本方法之一,它是將從待識別的圖象或圖象區(qū)域f(i,j)中提取的若干特征量與模板T(i,j)相應(yīng)的特征量逐個(gè)

27、進(jìn)行比較,計(jì)算它們之間規(guī)格化的互相關(guān)量,其中互相關(guān)量最大的一個(gè)就表示期間相似程度最高,可將圖象歸于相應(yīng)的類。也可以計(jì)算圖象與模板特征量之間的距離,用最小距離法判定所屬類。然而,通常情況下用于匹配的圖象各自的成像條件存在差異,產(chǎn)生較大的噪聲干擾,或圖象經(jīng)預(yù)處理和規(guī)格化處理后,使得圖象的灰度或像素點(diǎn)的位置發(fā)生改變。在實(shí)際設(shè)計(jì)模板的時(shí)候,是根據(jù)各區(qū)域形狀固有的特點(diǎn),突出各類似區(qū)域之間的差別,并將容易由處理過程引起的噪聲和位移等因素都考慮進(jìn)去,

28、按照一些基于圖象不變特性所設(shè)計(jì)的特征量來構(gòu)建模板,就可以避免上述問題。</p><p>  課程設(shè)計(jì)的步驟和結(jié)果</p><p>  此處以車牌1作為示例圖像</p><p><b>  獲取圖像</b></p><p>  [fn,pn,fi]=uigetfile('*.bmp','選擇圖片&#

29、39;);</p><p>  Scolor=imread([pn fn]);</p><p><b>  圖像灰度化</b></p><p>  Sgray = rgb2gray(Scolor);%rgb2gray轉(zhuǎn)換成灰度圖</p><p><b>  圖像增強(qiáng)</b></p>&

30、lt;p>  s=strel('disk',13);%strei函數(shù)13</p><p>  Bgray=imopen(Sgray,s);%打開sgray s圖像</p><p>  Egray=imsubtract(Sgray,Bgray);%兩幅圖相減</p><p><b>  邊緣提取</b></p>

31、<p>  圖像中車輛牌照是具有比較顯著特征的一塊圖象區(qū)域,這此特征表現(xiàn)在:近似水平的矩形區(qū)域;其中字符串都是按水平方向排列的;在整體圖象中的位置較為固定。正是由于牌照圖象的這些特點(diǎn),再經(jīng)過適當(dāng)?shù)膱D象變換,它在整幅中可以明顯地呈現(xiàn)出其邊緣。邊緣提取是較經(jīng)典的算法,此處邊緣的提取采用的是Roberts算子。</p><p>  grd=edge(Egray,'robert',0.09,&

32、#39;both');</p><p>  se=[1;1;1]; %線型結(jié)構(gòu)元素 </p><p>  I3=imerode(grd,se); %腐蝕圖像</p><p><b>  開閉運(yùn)算進(jìn)行濾波</b></p><p>  牌照圖象經(jīng)過了以上的處理后,牌照區(qū)域已經(jīng)十分明顯,而且其邊緣得到了勾勒和加強(qiáng)

33、。此時(shí)可進(jìn)一步確定牌照在整幅圖象中的準(zhǔn)確位置。這里選用數(shù)學(xué)形態(tài)學(xué)的方法,基本思想是用具有一定形態(tài)的機(jī)構(gòu)元素去量度和提取圖像中的對應(yīng)形狀以達(dá)到對圖像分析和識別的目的。數(shù)學(xué)形態(tài)學(xué)的應(yīng)用可以簡化圖像數(shù)據(jù),保持它們基本的形態(tài)特征,并除去不相干的結(jié)構(gòu)。在本程序中用到了開閉兩個(gè)基本運(yùn)算,最后還用了bwareaopen來去除對象中不相干的小對象。</p><p>  bg1=imclose(I3,strel('rect

34、angle',[8,18]));%取矩形框的閉運(yùn)算即平滑8,18</p><p>  bg3=imopen(bg1,strel('rectangle',[8,14]));%取矩形框的開運(yùn)算8,18</p><p>  bg2=bwareaopen(bg3,700);%去除聚團(tuán)灰度值小于700的部分</p><p><b>  車牌初

35、步定位</b></p><p>  通過比較累計(jì)行像素灰度值和列像素灰度值確定車牌的真實(shí)位置。</p><p>  [y,x,]=size(bg2);</p><p>  I6=double(bg2);</p><p><b>  %繪制行曲線圖</b></p><p>  Y1=ze

36、ros(y,1);%y行1列的零矩陣 累計(jì)行像素灰度值</p><p><b>  for i=1:y</b></p><p><b>  for j=1:x</b></p><p>  if(I6(i,j,1)==1)</p><p>  Y1(i,1)= Y1(i,1)+1;</p>

37、<p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></p><p>  [temp, MaxY]=max(Y1);</p><p><b>  PY1=MaxY;</b>

38、</p><p>  while ((Y1(PY1,1)>=50)&&(PY1>1))</p><p>  PY1=PY1-7;</p><p><b>  end</b></p><p><b>  PY2=MaxY;</b></p><p> 

39、 while ((Y1(PY2,1)>=50)&&(PY2<y))</p><p>  PY2=PY2+7;</p><p><b>  end</b></p><p><b>  %繪制列曲線圖</b></p><p>  X1=zeros(1,x);% 累計(jì)列像素灰度

40、值</p><p><b>  for j=1:x</b></p><p>  for i=PY1:PY2</p><p>  if(I6(i,j,1)==1)</p><p>  X1(1,j)= X1(1,j)+1;</p><p><b>  end</b></p

41、><p><b>  end</b></p><p><b>  end</b></p><p><b>  PX1=1;</b></p><p>  while ((X1(1,PX1)<3)&&(PX1<x))</p><p>

42、  PX1=PX1+1;</p><p><b>  end</b></p><p><b>  PX2=x;</b></p><p>  while ((X1(1,PX2)<3)&&(PX2>PX1))</p><p>  PX2=PX2-1;</p>&

43、lt;p><b>  end</b></p><p>  DW=Scolor(PY1:PY2,PX1:PX2,:);%車牌定位后圖像</p><p><b>  進(jìn)一步車牌定位</b></p><p>  經(jīng)過上述方法分割出來的車牌圖像中存在目標(biāo)物體、背景還有噪聲,要想從圖像中直接提取出目標(biāo)物體,最常用的方法就是設(shè)定

44、一個(gè)閾值T,用T將圖像的數(shù)據(jù)分成兩部分:大于T的像素群和小于T的像素群,即對圖像二值化。然后通過行像素點(diǎn)的累計(jì)值去除頂端和底端不感興趣的地方。</p><p>  if isrgb(DW) </p><p>  I1 = rgb2gray(DW); %將RGB圖像轉(zhuǎn)化為灰度圖像</p><p>  else I1=DW;</p><p&

45、gt;<b>  end</b></p><p>  g_max=double(max(max(I1)));</p><p>  g_min=double(min(min(I1)));</p><p>  T=round(g_max-(g_max-g_min)/3); % T 為二值化的閾值</p><p>  [m,n

46、]=size(I1);% d:二值圖像</p><p>  imane_bw=im2bw(I1,T/256); %二值化車牌圖像</p><p>  [y1,x1,z1]=size(imane_bw);</p><p>  I3=double(imane_bw);</p><p><b>  TT=1;</b></

47、p><p>  %%%%%%%去除圖像頂端和底端的不感興趣區(qū)域%%%%%</p><p>  Y1=zeros(y1,1);</p><p>  for i=1:y1</p><p>  for j=1:x1</p><p>  if(I3(i,j,1)==1) </p><p>  Y1(i,1)

48、= Y1(i,1)+1 ;</p><p><b>  end </b></p><p>  end </p><p><b>  end</b></p><p>  Py1=1;Py0=1;</p><p>  while ((Y1(Py0,1)<9)&

49、amp;&(Py0<y1))</p><p>  Py0=Py0+1;</p><p><b>  end</b></p><p><b>  Py1=Py0;</b></p><p>  while((Y1(Py1,1)>=9)&&(Py1<y1))<

50、;/p><p>  Py1=Py1+1;</p><p><b>  end</b></p><p>  I2=imane_bw(Py0:Py1,:,:); %目標(biāo)車牌區(qū)域</p><p><b>  車牌字符分割</b></p><p>  字符分割的算法很多,因?yàn)檐嚺谱址g間

51、隔較大,通常不會出現(xiàn)字符粘連情況,所以此處采用的方法為尋找連續(xù)有文字的塊,若長度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割。一般分割出來的字符要進(jìn)行進(jìn)一步的處理,以滿足下一步字符識別的需要。但是對于車牌的識別,并不需要太多的處理就已經(jīng)可以達(dá)到正確識別的目的。在此只進(jìn)行了歸一化處理,然后進(jìn)行后期處理。</p><p>  % 尋找連續(xù)有文字的塊,若長度大于某閾值,則認(rèn)為該塊有兩個(gè)字符組成,需要分割</p&

52、gt;<p>  d=qiege(I2);</p><p>  [m,n]=size(d);</p><p>  k1=1;k2=1;s=sum(d);j=1;</p><p>  while j~=n</p><p>  while s(j)==0</p><p><b>  j=j+1;&l

53、t;/b></p><p><b>  end</b></p><p><b>  k1=j;</b></p><p>  while s(j)~=0 && j<=n-1</p><p><b>  j=j+1;</b></p><

54、;p><b>  end</b></p><p><b>  k2=j-1;</b></p><p>  if k2-k1>=round(n/6.5)</p><p>  [val,num]=min(sum(d(:,[k1+5:k2-5])));</p><p>  d(:,k1+num

55、+5)=0; % 分割</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  % 再切割</b></p><p>  d=qiege(d);</p><p>  % 切割出 7 個(gè)字符<

56、;/p><p>  y1=10;y2=0.25;flag=0;word1=[];</p><p>  while flag==0</p><p>  [m,n]=size(d);</p><p>  left=1;wide=0;</p><p>  while sum(d(:,wide+1))~=0</p>

57、<p>  wide=wide+1;</p><p><b>  end</b></p><p>  if wide<y1 % 認(rèn)為是左側(cè)干擾</p><p>  d(:,[1:wide])=0;</p><p>  d=qiege(d);</p><p><b> 

58、 else</b></p><p>  temp=qiege(imcrop(d,[1 1 wide m]));</p><p>  [m,n]=size(temp);</p><p>  all=sum(sum(temp));</p><p>  two_thirds=sum(sum(temp([round(m/3):2*roun

59、d(m/3)],:)));</p><p>  if two_thirds/all>y2</p><p>  flag=1;word1=temp; % WORD 1</p><p><b>  end</b></p><p>  d(:,[1:wide])=0;d=qiege(d);</p>&l

60、t;p><b>  end</b></p><p><b>  end</b></p><p>  [word2,d]=getword(d);% 分割出第二個(gè)字符</p><p>  [word3,d]=getword(d); % 分割出第三個(gè)字符</p><p>  [word4,d]=ge

61、tword(d); % 分割出第四個(gè)字符</p><p>  [word5,d]=getword(d); % 分割出第五個(gè)字符</p><p>  [word6,d]=getword(d); % 分割出第六個(gè)字符</p><p>  [word7,d]=getword(d); % 分割出第七個(gè)字符</p><p>  [m,n]=size(w

62、ord1);</p><p>  %歸一化大小為22*14</p><p>  word1=imresize(word1,[22 14]);</p><p><b>  ……</b></p><p>  word7=imresize(word7,[22 14]);</p><p>  imwrit

63、e(word1,'1.jpg');</p><p><b>  ……</b></p><p>  imwrite(word7,'7.jpg');</p><p><b>  車牌字符識別</b></p><p>  此處采用相減的方法來求得字符與模板中哪一個(gè)字符最相似

64、,然后找到相似度最大的輸出。汽車牌照的字符一般有七個(gè),大部分車牌第一位是漢字,通常代表車輛所屬省份,緊接其后的為字母與數(shù)字。車牌字符識別與一般文字識別在于它的字符數(shù)有限,漢字共約30多個(gè),大寫英文字母26個(gè),數(shù)字10個(gè)。</p><p>  首先取字符模板,接著依次取待識別字符與模板進(jìn)行匹配,將其與模板字符相減,得到的非0值越少那么就越匹配。把每一幅相減后的圖的非0值個(gè)數(shù)保存,即為識別出來的結(jié)果。</p&g

65、t;<p><b>  源程序:</b></p><p>  liccode=char(['0':'9' 'A':'Z' '藏川甘贛貴桂黑滬吉濟(jì)冀津晉京警蘭遼領(lǐng)魯蒙閩寧青瓊陜使蘇皖湘新學(xué)渝豫粵云浙']); %建立自動識別字符代碼表 </p><p><b>  t

66、t=1;</b></p><p><b>  l=1;</b></p><p><b>  for I=1:7</b></p><p>  ii=int2str(I);</p><p>  t=imread([ii,'.jpg']);</p><p&g

67、t;<b>  t=255-t;</b></p><p>  level=graythresh(t);</p><p>  t=im2bw(t,level);</p><p>  SegBw2=imresize(t,[22 14],'nearest');</p><p>  if tt==1

68、 %第一位漢字識別</p><p><b>  kmin=37;</b></p><p><b>  kmax=72;</b></p><p><b>  t=~t;</b></p><p>  SegBw2=imresize(t,[22 14],'n

69、earest');</p><p>  elseif tt==2 %第二位 A~Z 字母識別</p><p><b>  kmin=11;</b></p><p><b>  kmax=36;</b></p><p>  else %第三位

70、以后是字母或數(shù)字識別</p><p><b>  kmin=1;</b></p><p><b>  kmax=36;</b></p><p><b>  end</b></p><p>  for k2=kmin:kmax</p><p>  fnam

71、e=strcat('code module\Sam',liccode(k2),'.jpg');</p><p>  SamBw22 = imread(fname);</p><p>  SamBw22 = rgb2gray(SamBw22);</p><p>  SamBw2=imresize(SamBw22,[22 14],'

72、;nearest');</p><p>  level=graythresh(SamBw2);</p><p>  SamBw2=im2bw(SamBw2,level);</p><p>  for i=1:22</p><p>  for j=1:14</p><p>  SubBw2(i,j)=SegBw

73、2(i,j)-SamBw2(i,j);</p><p><b>  end</b></p><p><b>  end</b></p><p>  % 以上相當(dāng)于兩幅圖相減得到第三幅圖</p><p><b>  Dmax=0;</b></p><p>

74、  for k1=1:22</p><p>  for l1=1:14</p><p>  if ( SubBw2(k1,l1) > 0 || SubBw2(k1,l1) <0 )</p><p>  Dmax=Dmax+1;</p><p><b>  end</b></p><p&g

75、t;<b>  end</b></p><p><b>  end</b></p><p>  Error(k2)=Dmax;</p><p><b>  end</b></p><p>  Error1=Error(kmin:kmax);</p><p&g

76、t;  MinError=min(Error1);</p><p>  findc=find(Error1==MinError);</p><p><b>  if tt==1</b></p><p>  findc=findc+36;</p><p><b>  end</b></p>

77、<p><b>  if tt==2</b></p><p>  findc=findc+10;</p><p><b>  end</b></p><p><b>  tt=tt+1;</b></p><p>  res=liccode(findc);</

78、p><p>  shibiejieguo(1,l)=res;</p><p><b>  l=l+1;</b></p><p><b>  end</b></p><p>  %%%getword子函數(shù)為:</p><p>  function [word,result]=get

79、word(d)</p><p>  word=[];flag=0;y1=8;y2=0.5;</p><p>  while flag==0</p><p>  [m,n]=size(d);</p><p><b>  wide=0;</b></p><p>  while sum(d(:,wide

80、+1))~=0 && wide<=n-2</p><p>  wide=wide+1;</p><p><b>  end</b></p><p>  temp=qiege(imcrop(d,[1 1 wide m]));</p><p>  [m1,n1]=size(temp);</p>

81、;<p>  if wide<y1 && n1/m1>y2</p><p>  d(:,[1:wide])=0;</p><p>  if sum(sum(d))~=0</p><p>  d=qiege(d); % 切割出最小范圍</p><p>  else word=[];flag=1;<

82、;/p><p><b>  end</b></p><p><b>  else</b></p><p>  word=qiege(imcrop(d,[1 1 wide m]));</p><p>  d(:,[1:wide])=0;</p><p>  if sum(sum(d

83、))~=0;</p><p>  d=qiege(d);flag=1;</p><p>  else d=[];</p><p><b>  end</b></p><p><b>  end</b></p><p><b>  end</b></

84、p><p><b>  result=d;</b></p><p>  %%%qiege子函數(shù)為:</p><p>  function e=qiege(d)</p><p>  [m,n]=size(d);</p><p>  top=1;bottom=m;left=1;right=n; % i

85、nit</p><p>  while sum(d(top,:))==0 && top<=m</p><p>  top=top+1;</p><p><b>  end</b></p><p>  while sum(d(bottom,:))==0 && bottom>1&l

86、t;/p><p>  bottom=bottom-1;</p><p><b>  end</b></p><p>  while sum(d(:,left))==0 && left<n</p><p>  left=left+1;</p><p><b>  end&

87、lt;/b></p><p>  while sum(d(:,right))==0 && right>=1</p><p>  right=right-1;</p><p><b>  end</b></p><p>  dd=right-left;</p><p> 

88、 hh=bottom-top;</p><p>  e=imcrop(d,[left top dd hh]);</p><p>  得出車牌檢測結(jié)果為:陜A906L4</p><p>  對話框顯示及語音朗讀</p><p>  msgbox(shibiejieguo,'識別結(jié)果');</p><p>

89、  duchushengyin(shibiejieguo);</p><p>  %%%%duchushengyin子函數(shù)為:</p><p>  function shengyin=duchushengyin(shibiejieguo)</p><p>  wavplay(wavread('audio\車牌檢測.wav'),44000);</

90、p><p><b>  for i=1:7</b></p><p>  if shibiejieguo(1,i)=='桂'</p><p>  wavplay(wavread('audio\桂.wav'),44000);</p><p>  elseif shibiejieguo(1,

91、i)=='陜'</p><p>  wavplay(wavread('audio\陜.wav'),44000);</p><p><b>  ……</b></p><p>  elseif shibiejieguo(1,i)=='A'</p><p>  wavplay(w

92、avread('audio\A.wav'),44000);</p><p><b>  ……</b></p><p>  elseif shibiejieguo(1,i)=='0'</p><p>  wavplay(wavread('audio\0.wav'),44000);</p>

93、<p><b>  ……</b></p><p>  elseif shibiejieguo(1,i)=='9'</p><p>  wavplay(wavread('audio\9.wav'),44000);</p><p><b>  end</b></p>

94、<p><b>  end</b></p><p>  wavplay(wavread('audio\車牌檢測完畢.wav'),44000);</p><p><b>  設(shè)計(jì)GUI界面</b></p><p><b>  界面設(shè)計(jì)如下:</b></p><

95、;p>  界面可顯示車輛的原始圖像,車牌定位圖像,進(jìn)一步定位的車牌區(qū)域,車牌字符分割后的結(jié)果以及車牌的識別結(jié)果。瀏覽文件按鈕可在文件夾中選擇要處理的圖片,然后按下確認(rèn)按鈕,開始處理,按下結(jié)束后,所有圖片及字符顯示均清除。</p><p><b>  課程設(shè)計(jì)總結(jié)</b></p><p>  本文主要解決了以下問題:1、在背景的圖象中如何定位牌照2、將定位的牌照區(qū)

96、域中的字符分割;3、對分割下來的牌照字符提取具有分類能力的特征,并對漢字、字母及數(shù)字均進(jìn)行識別。在車輛牌照字符識別系統(tǒng)的研究領(lǐng)域,近幾年出現(xiàn)了許多切實(shí)可行的識別技術(shù)和方法,從這些新技術(shù)和方法中可以看到:單一的預(yù)處理和識別技術(shù)都無法達(dá)到理想的結(jié)果,多種方法的有機(jī)結(jié)合才能使系統(tǒng)有效識別能力提高。在本系統(tǒng)的設(shè)計(jì)時(shí),也汲取了以上一些算法的思想,結(jié)合實(shí)際,反復(fù)比較,綜合分析。</p><p>  根據(jù)車牌特點(diǎn),一般采用的車

97、牌定位算法有:1.邊緣檢測定位算法;2.利用哈夫變換進(jìn)行車牌定位;3.色彩分割提取車牌等。這里我采用的是邊緣檢測的方法實(shí)現(xiàn)定位的。</p><p>  字符分割的方法也有多種:1. 基于聚類分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是針對在車牌定位,圖像預(yù)處理后比較規(guī)則的車牌圖像。優(yōu)點(diǎn)是程序邏輯設(shè)計(jì)簡單,循環(huán)執(zhí)行功能單一,便于設(shè)計(jì)和操作,程序執(zhí)行時(shí)間短。</

98、p><p>  字符識別的基本方法通常有三類:1.結(jié)構(gòu)特征分析方法;2.模板匹配法;3.神經(jīng)網(wǎng)絡(luò)法。此處采用的是模板匹配的方法,即是將要識別的字符與事先構(gòu)造好的模板進(jìn)行比對,根據(jù)與模板的相似度的大小來確定最終的識別結(jié)果。</p><p>  但是系統(tǒng)本身還存在許多不足,距離具體實(shí)用的要求仍有很大差距,但我卻在這次課程設(shè)計(jì)中學(xué)到了很多知識。</p><p><b&g

99、t;  設(shè)計(jì)體會</b></p><p>  通過這次課程設(shè)計(jì)使我明白了自己原來的數(shù)字圖像處理知識還比較欠缺,這個(gè)設(shè)計(jì)讓我學(xué)到了很多東西,在這整個(gè)過程中我遇到了很多困難,查閱了大量的資料,也得到了老師和同學(xué)的幫助,才逐步將一個(gè)個(gè)困難克服。其中,讓我困擾很長時(shí)間的便是許多參數(shù)的選取。在圖像的預(yù)處理階段,開閉運(yùn)算的矩陣選取,根據(jù)行列累計(jì)像素灰度值定位車牌的閾值選取以及車牌分割的參數(shù)等都需要多次的嘗試與總結(jié)

100、才可以找到適合多幅圖像的合適的值。另外,字符識別的過程中模板的選取很關(guān)鍵,由于我檢測出來的車牌是黑底白字的,而我所使用的模板是白底黑字的,曾一度檢測錯(cuò)誤,后來才發(fā)現(xiàn)這個(gè)問題,經(jīng)過二值變換之后取反再比較,可以得到正確的識別字符。中間也更換過幾次模板,要選取與車牌數(shù)字最接近的模板,否則很容易識別錯(cuò)誤。</p><p>  總之,理論只有應(yīng)用到實(shí)際中才能學(xué)著更有意義。學(xué)習(xí)是一個(gè)長期積累的過程,在后的工作、生活中都應(yīng)該不

101、斷的學(xué)習(xí),努力提高自己知識和綜合素質(zhì)。此次設(shè)計(jì)也大大提高了我的動手能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)目前實(shí)現(xiàn)了少數(shù)的車輛牌照識別,但是在設(shè)計(jì)過程中所學(xué)到的學(xué)習(xí)方法是我最大收獲和財(cái)富,相信定會使我受益終身。</p><p><b>  參考文獻(xiàn)</b></p><p>  1 王剛,冀小平. 基于MATLAB的車牌識別系統(tǒng)的研究.

102、電子設(shè)計(jì)工程,2009.17(11):72-73</p><p>  2 岡薩雷斯.?dāng)?shù)字圖像處理(第二版).電子工業(yè)出版社,2007.8</p><p>  3 宋建才.汽車牌照識別技術(shù)研究叨.工業(yè)控制計(jì)算機(jī),2004(4):44—45.</p><p>  4 陳永超. 基于數(shù)字圖像處理的車牌識別研究.武漢理工大學(xué)碩士學(xué)位論文. 2006:16-19<

103、/p><p>  5 王璐. 基于 MATLAB的車牌識別系統(tǒng)研究.上海交通大學(xué)碩士學(xué)位論文. 2009:15-27</p><p>  6 張 引,潘云鶴.面向車輛牌照字符識別的預(yù)處理算法.計(jì)算機(jī)應(yīng)用研究,1999(7):85~87</p><p>  7 郁梅等.基于視覺的車輛牌照檢測.計(jì)算機(jī)應(yīng)用研究.1999(5):65~67</p><

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論