赞
踩
pip install opencv-python
pip install pytesseract
然后用下面的代码:
import cv2 import pytesseract # 读取图像 img = cv2.imread('car_plate.jpg') # 转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 进行边缘检测 canny = cv2.Canny(gray, 100, 200) # 进行车牌检测 contours, hierarchy = cv2.findContours(canny, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) for contour in contours: x, y, w, h = cv2.boundingRect(contour) if w/h > 2 and w/h < 5 and w > 80 and h > 20: plate = img[y:y+h, x:x+w] text = pytesseract.image_to_string(plate, lang='chi_sim') print(text) # 显示图像 cv2.imshow('Car Plate', img) cv2.waitKey(0)
先读取一张车牌图像,将其转换为灰度图像,用Canny算法进行边缘检测。然后,用OpenCV的findContours函数找到图像中的轮廓,根据车牌的宽高比和大小进行筛选,把符合条件的车牌图像截取出来。最后,使用Tesseract OCR引擎对截取出来的车牌图像进行识别,并打印识别结果。
用imshow函数将原始图像显示出来,等待用户关闭窗口。你可以根据需要修改代码中的参数,如调整Canny算法的参数、调整车牌的宽高比和大小限制等,来适应不同的场景和需求。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。