【正文】
%則Blue_y的相應行的元素white_y(i,1)值加1 Blue_y(i,1)= Blue_y(i,1)+1。I5=bwareaopen(I4,2000)。se=strel(39。)se=[1。I2=edge(I1,39。figure(2),subplot(1,2,1),imshow(I1)。參考源代碼如下:function [d]=main(jpg)I=imread(39。有些方法只能識別一幅特定的圖像,有些甚至什么都識別不了。第一,鞏固了數(shù)字圖像處理課上所學的知識,比如濾波、膨脹、腐蝕、邊緣提取等等。nearest39。 endelse其中Level1和Level2是字符寬度的上下限,R_C_Ratio_1和R_C_Ratio_2是單個字符的寬高比值的上下限。amp。end在這里結構元素Se使用一個二維單位矩陣1001。線性濾波的基本原理是用均值代替原圖像中的各個像素值,即對待處理的當前像素點x,y,選擇一個模板,該模板由其近鄰的若干像素組成(以目標象素為中心的周圍8個象素,構成一個濾波模板,即去掉目標象素本身),求模板中所有像素的均值,再把該均值賦予當前像素點x,y,作為處理后圖像在該點上的灰度gx,y,即gx,y=1mf(x,y),m為該模板中包含當前像素在內的像素總個數(shù)(即8個)。end垂直方向的分界線可用同樣的方法實現(xiàn)。% end endend Col_Left=1。圖像經(jīng)平滑后效果如下:圖5 平滑處理后效果圖像平滑處理了,可能會有多個閉合區(qū)域,對于不是車牌區(qū)域的必須予以刪除,Matlab提供了一個函數(shù)bwareaopen(),用于刪除二值圖像中面積小于一個定值的對象,默認情況下使用8鄰域,Car_Image_Perform2=bwareaopen(Car_Image_Perform,2000)。)。打開sgray s圖像figure,imshow(Bgray)。將彩色圖像轉換為黑白并顯示Sgray = rgb2gray(Scolor)。和135176。Car_Image_Bin=edge(Car_Image_Gray,39。因為由*.JPG圖像時一個軟件開發(fā)聯(lián)合會組織制定、有損壓縮格式,能夠將圖像壓縮在很小的儲存空間,而且廣泛支持 Internet 標準,是面前使用最廣的圖片保存和傳輸格式,大多數(shù)攝像設備都以*.JPG格式保存。另外還有一個配套軟件包Simulink,提供了一個可視化開發(fā)環(huán)境,常用于系統(tǒng)模擬、動態(tài)/嵌入式系統(tǒng)開發(fā)等方面。(1) Matlab繪圖功能很強大,但在VC++,VB語言里繪圖都很不容易,但Matlab里數(shù)據(jù)的可視化程度非常高,并且具有較強的編輯圖形界面的能力。車牌識別單元對圖像進行處理,定位出車牌位置,再將車牌中的字符分割出來進行識別,最后組成車牌號碼輸出。 License plate character recognition, that is, the good character segmentation, which can identify of license plate number.Key words:Matlab。車牌識別系統(tǒng)可以應用于停車場管理系統(tǒng)、高速公路超速管理系統(tǒng)、城市十字路口的“電子警察”、小區(qū)車輛管理系統(tǒng)等各個領域。 Segmentation。同時,我也著重介紹了我所用到的相關軟件。(4)Matlab的可移植性很好,基本上不做修改就可以在在各種型號的計算機和操作系統(tǒng)上運行。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。圖2 原始圖像 圖像預處理考慮到現(xiàn)有牌照的字符與背景的顏色搭配一般有藍底白字、黃底黑字、白底紅字、綠底白字和黑底白字等幾種,利用不同的色彩通道就可以將區(qū)域與背景明顯地區(qū)分出來,例如,對藍底白字這種最常見的牌照,采用藍色B 通道時牌照區(qū)域為一亮的矩形,而牌照字符在區(qū)域中并不呈現(xiàn)。both39。Roberts邊緣檢測算子相當于用0110和1001對圖像進行卷積。)。)。結構單元這里采用水平與垂直雙向投影法,水平坐標的確定,先定義一個1x的數(shù)組,其中x為原始圖像的寬度值,然后將二值圖像垂直投影到x軸。(Col_Leftx))% Col_Left=Col_Left+1。圖8為二值圖切割的車牌區(qū)域,圖9為RGB圖像切割出來的圖像如下:圖7 車牌區(qū)域二值圖裁減圖8 原圖中的車牌區(qū)域圖像由于圖像車牌號區(qū)域提取后獲得的是從原始圖像中剪切的,是RGB圖像,分割同樣采取投影法,故同樣需要先將RGB圖像轉換成灰度值,再將灰度圖轉化成二進制圖,轉化的方法就是限定一個閥值,如果大于閥值則為1,小于閥值為0,閥值采用全局閥值,全局閥值是指整幅圖像都采用相同的閥值T處理,適用于背景和前景有明顯對比的圖像。根據(jù)經(jīng)驗值,車牌圖像中,字符面積與車牌面積之比在(,)之間,因此計算字符面積與車牌面積比值,程序實現(xiàn)如下clear Se。但是,實際上,第二個第三個字符之間存在一個黑點,牌照左右兩邊與圖像邊緣也都有一定的寬度,所以每個字符的寬度應該小于width/7。amp。人工神經(jīng)網(wǎng)絡是模擬人腦思維功能和組織建立起來的數(shù)學模型,雖然現(xiàn)在神經(jīng)網(wǎng)絡正在迅速發(fā)展,但總體來說應用還是相對復雜的。 endend最后計算第三幅二進制圖像中像素值為1的個數(shù),數(shù)值最小的即為匹配出來的結果,經(jīng)對比可得相似度最高的數(shù)字。特別是形態(tài)學圖像處理那一章有許多詳細的例子,淺顯易懂,不少課上沒有完全理解的內容通過看這本書得到了深入的體會。第四,我深刻感受到要實現(xiàn)一個系統(tǒng)的功能是一件很復雜的事。figure(1),imshow(I)。)。both39。I3=imerode(I2,se)。I4=imclose(I3,se)。從對象中移除小對象39。 while ((Blue_y(PY1,1)=120)amp。%IY為原始圖像I中截取的縱坐標在PY1:PY2之間的部分 %end橫向掃描 %begin縱向掃描 Blue_x=zeros(1,x)。amp。)。,39。imwrite(b,39。T=round(g_max(g_maxg_min)/3)。39。39。line39。elseif bwarea(d)/m/n= d=imdilate(d,se)。figure,subplot(2,1,1),imshow(d),title(n)k1=1。 j=n1 j=j+1。word1=[]。 [m,n]=size(temp)。% 分割出第三個字符[word3,d]=getword(d)。figure(10),imshow(word2),title(39。)。739。word6=imresize(word6,[40 20])。subplot(3,7,10),imshow(word3),title(39。)。39。imwrite(word4,39。)。 39。l=1。 if l==1 %第一位漢字識別 kmin=37。,liccode(k2),39。 end Error1=Error(kmin:kmax)。flag=0。 end temp=qiege(imcrop(d,[1 1 wide m]))。 end else word=qiege(imcrop(d,[1 1 wide m]))。top=1。amp。enddd=rightleft。參考文獻[1] 趙丹,丁金華,基于Matlab的車牌識別,大連理工學報,[2] MATLAB R2007圖像處理技術與應用,王愛玲,葉明生,鄧秋香,電子工業(yè)出版社,[3] [J].工業(yè)控制計算機,2004,[4] 岡薩雷斯.數(shù)字圖像處理(第二版).電子工業(yè)出版社,2007.8[5] 葉晨洲等,車輛牌照字符識別系統(tǒng),計算機系統(tǒng)應用,1999(5)