1. 程式人生 > >OpenCV+Python識別車牌和字符分割的實現

OpenCV+Python識別車牌和字符分割的實現

img 環境 cimage 平均值 -o mage upload 位置 ges

本篇文章主要基於python語言和OpenCV庫(cv2)進行車牌區域識別和字符分割,開篇之前針對在python中安裝opencv的環境這裏不做介紹,可以自行安裝配置!

車牌號檢測需要大致分為四個部分:

1.車輛圖像獲取

2.車牌定位、

3.車牌字符分割

4.車牌字符識別

具體介紹

車牌定位需要用到的是圖片二值化為黑白後進canny邊緣檢測後多次進行開運算與閉運算用於消除小塊的區域,保留大塊的區域,後用cv2.rectangle選取矩形框,從而定位車牌位置

車牌字符的分割前需要準備的是只保留車牌部分,將其他部分均變為黑色背景。這裏我采用cv2.grabCut方法,可將圖像分割成前景與背景。分割完成後,再經過二值化為黑白圖後即可進行字符分割。由於圖像中只有黑色和白色像素,因此我們需要通過圖像的白色像素和黑色像素來分割開字符。即分別通過判斷每一行每一列的黑色白色像素值的位置,來定位出字符。

具體步驟如下:

1.灰度轉換:將彩色圖片轉換為灰度圖像,常見的R=G=B=像素平均值。

2.高斯平滑和中值濾波:去除噪聲。

3.Sobel算子:提取圖像邊緣輪廓,X方向和Y方向平方和開跟。

4.二值化處理:圖像轉換為黑白兩色,通常像素大於127設置為255,小於設置為0。

5.膨脹和細化:放大圖像輪廓,轉換為一個個區域,這些區域內包含車牌。

6.通過算法選擇合適的車牌位置,通常將較小的區域過濾掉或尋找藍色底的區域。

7.標註車牌位置

8.圖像切割和識別

通過代碼實現:

技術分享圖片

運行效果如圖所示

車牌定位並進行處理

技術分享圖片

車牌分割如圖所示

技術分享圖片

OpenCV+Python識別車牌和字符分割的實現