OpenCV+Python識別車牌和字符分割的實現
阿新 • • 發佈:2019-05-02
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識別車牌和字符分割的實現