簡體   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