繁体   English   中英

Python Tesseract 车牌识别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM