车牌识别的具体步骤
- 通过Haar定位车牌的大体位置
- 对车牌进行预处理
- 调用tesseract进行文字识别
车牌预处理包括的内容
- 对车牌进行二值化处理
- 进行形态学处理
- 滤波去除噪点
- 缩放
tesseract的安装
- brew install tesseract tesseract-lang
- pip3 install pytesseract
import cv2 as cv
import numpy as np
import pytesseract
plate = cv.CascadeClassifier(r'C:\ProgramData\Anaconda3\Lib\site-packages\cv2\data\haarcascade_russian_plate_number.xml')
img = cv.imread(r'C:\Users\Administrator\Desktop\plate2.png')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
plates = plate.detectMultiScale(gray, 1.1, 3)
for (x, y, w, h) in plates:
cv.rectangle(img, (x, y), (x+w, y+h), (0, 0, 255), 2)
roi = gray[y:y+h, x:x+w]
ret, roi_bin = cv.threshold(roi, 0, 255, cv.THRESH_BINARY + cv.THRESH_OTSU)
print(pytesseract.image_to_string(roi_bin, lang="chi_sim+eng", config='--psm 8 --oem 3'))
cv.imshow("plate", img)
cv.imshow('roi_bin', roi_bin)
cv.waitKey(0)