基于MATLAB的車牌識別系統(tǒng)設計與實現(xiàn)
摘 要: 通過對車牌定位、車牌字符分割和車牌字符識別進行研究,提出了一種車牌識別系統(tǒng)的設計和實驗仿真方法。該方法首先采用基于Canny 算子邊緣檢測和數(shù)學形態(tài)學相結合的方法定位出車牌,進行二值化、濾波和形態(tài)學開運算后使用投影二分法分割出7個車牌字符,最后使用模板匹配和特征統(tǒng)計相結合的方法識別出車牌字符。試驗表明該方法是有效的、可行的,與傳統(tǒng)使用單一算法相比較,該方法大大提高了車牌識別系統(tǒng)的正確率。
關鍵詞: 圖像預處理; 車牌定位; 車牌字符分割; 車牌字符識別
隨著世界經(jīng)濟和科學技術的不斷發(fā)展,智能交通系統(tǒng)越來越多地被人們所關注。車牌識別LPR(License Plate Recognition)是智能交通系統(tǒng)中重要研究課題[1],已成為圖像處理和模式識別研究中的熱點。整個車牌識別系統(tǒng)主要包括圖像預處理、車牌定位、車牌字符分割、車牌字符識別4個模塊,其流程圖如圖1所示。
圖像預處理主要是將輸入的彩色圖像轉換為灰度圖像,再進行灰度增強,以達到較好的凸顯車牌字符的效果。這里首先將24位R、G、B的彩色圖像按式(1)轉換成256級的灰度圖,以減少存儲和計算量,圖2是轉換后的車牌灰度圖。
1 車牌定位
車牌定位是車牌識別系統(tǒng)中關鍵的一步,直接關系到車牌字符分割的準確性和系統(tǒng)識別的正確率[2]。通過比較4種典型的邊緣檢測算子,選擇Canny算子對車牌進行邊緣檢測,然后對車牌進行形態(tài)學處理,并統(tǒng)計圖像中白色像素點的個數(shù)定位出車牌區(qū)域。
1.1 4種典型的邊緣檢測算子
邊緣檢測的目的是標識數(shù)字圖像中亮度變化明顯的點,車牌識別4種典型的邊緣檢測算子有:Roberts算子、Prewitt算子、Sobel算子和Canny算子,圖3是這4種典型的邊緣檢測算子對車牌圖像的檢測效果圖。
實驗結果表明,Roberts算子對邊緣定位比較準,但對噪聲過于敏感,在圖像噪聲較少的情況下分割效果相當不錯。Prewitt算子有一定的抗噪能力,但是這種抗噪能力是通過像素平均來實現(xiàn)的,相當于低通濾波,所以圖像有一定模糊,其邊緣檢測時會受到一定影響。Soble算子對噪聲有抑制作用,但對邊緣的定位不是很準確,不適合對邊緣定位的準確性要求很高的應用。Canny算子具有高定位精度,即能準確地把邊緣點定位在灰度變化最大的像素上,同時較好地保留了原有車形的邊緣特征,并能抑制虛假邊緣的產(chǎn)生,因此本文選取Canny算子作為車牌圖像邊緣檢測算子。
Canny算子邊緣檢測的實現(xiàn)是由MATLAB圖像處理工具箱中edge函數(shù)來完成的。edge函數(shù)主要是在灰度圖像中查找圖像的邊緣,處理圖像的格式為BW=edge(I,′Canny′,thresh),其中I為灰度圖像;thresh是一個包含兩個閾值的向量,第一個元素是低閾值,第二個元素是高閾值,本文Canny算子邊緣檢測的MATLAB參數(shù)設置如下:
I2=edge(I1,′Canny′,[0.25,0.65]);
figure(3),imshow(I2);title(′Canny算子邊緣檢測′);
1.2數(shù)學形態(tài)學處理
數(shù)學形態(tài)學是由一組形態(tài)學的代數(shù)運算算子組成的,用這些算子可以對圖像的形狀和結構進行分析及處理[3]。通過對圖像的腐蝕和膨脹運算能使車牌區(qū)域連通,并最大限度地消除非車牌區(qū)域的噪聲干擾。腐蝕和膨脹后的車牌圖像如圖4所示。