用Python写一个车牌识别代码
时间: 2023-03-24 17:01:43 浏览: 162
以下是一个简单的使用Python进行车牌识别的示例代码,可以识别中国普通车辆的车牌号码。
```
import cv2
import numpy as np
import pytesseract
# 读取图片并进行预处理
img = cv2.imread('car_plate.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blur, 100, 200)
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
closed = cv2.morphologyEx(edges, cv2.MORPH_CLOSE, kernel)
# 在图像中寻找车牌轮廓
contours, hierarchy = cv2.findContours(closed, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
x, y, w, h = cv2.boundingRect(c)
ratio = w / h
if ratio > 2 and ratio < 5:
area = w * h
if area > 10000 and area < 80000:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
plate_img = gray[y:y+h, x:x+w]
plate_text = pytesseract.image_to_string(plate_img, lang='chi_sim')
print('车牌号码:', plate_text)
# 显示识别结果
cv2.imshow('car plate', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
需要注意的是,此代码需要安装OpenCV和Tesseract OCR库才能正常运行。另外,由于不同的图片质量和车牌样式会影响识别的准确性,因此在实际应用中可能需要对代码进行一些调整和优化。
阅读全文