[英]Python Tesseract License Plate Recognition
我是一名程序员,但我之前没有使用 Python 或其任何库,甚至 OCR/ALPR 整体的经验。 我有一个我制作的脚本(基本上是在整个网络上复制和粘贴其他脚本),我假装用来识别车牌。 但现实是我的代码现在非常糟糕。 它可以很好地识别图像中的文本,但捕捉车牌很糟糕。 我很少能用它拿到车牌。
所以我想要一些关于如何更改我的代码以使其更好的帮助。
在我的代码中,我只需选择一个图像,将其转换为二进制和 BW,然后尝试读取它。
我只需要字符串(image_to_string); 我不需要图像。
同样重要的是要注意,正如我所说,我对这段代码或我正在使用的函数没有专业知识。
我的代码:
from PIL import Image
import pytesseract
import numpy as np
import cv2
image = cv2.imread('redcar.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
se=cv2.getStructuringElement(cv2.MORPH_RECT , (8,8))
bg=cv2.morphologyEx(image, cv2.MORPH_DILATE, se)
out_gray=cv2.divide(image, bg, scale=255)
out_binary=cv2.threshold(out_gray, 0, 255, cv2.THRESH_OTSU )[1]
#cv2.imshow('binary', out_binary)
cv2.imwrite('binary.png',out_binary)
#cv2.imshow('gray', out_gray)
cv2.imwrite('gray.png',out_gray)
filename = 'gray.png'
img1 = np.array(Image.open(filename))
text = pytesseract.image_to_string(filename,config ='--psm 6')
print(text)
我希望easyocr在这种情况下会有所帮助。 您可以通过pip install easyocr
使用 opencv 版本的opencv-python-4.5.4.60
import easyocr
IMAGE_PATH = 'AQFCB.jpg'
reader = easyocr.Reader(['en'])
result = reader.readtext(IMAGE_PATH)
for detection in result:
if detection[2] > 0.5:
print(detection[1])
输出是
HR.26 BR.9044
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.