Pytesseract image_to_string空输出

时间:2020-03-10 10:33:07

标签: python python-3.x opencv cv2 python-tesseract

我有这幅图像是从另一幅图像裁剪而来的,我想将此图像作为image_to_string方法的输入:

import pytesseract
import cv2
num_plate = cv2.imread('E:\Images\car_plate222.jpeg' , cv2.IMREAD_GRAYSCALE)
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
cv2.dilate(num_plate, (15, 15), num_plate)
pytesseract.image_to_string(num_plate)

这是照片: 车牌:
Car Plate

我使用膨胀来获得更好的性能,但是却没有给我想要的输出(有时给我空字符串,有时给我奇怪的输出)

有人知道怎么了吗?

1 个答案:

答案 0 :(得分:0)

您必须先threshold张图像,然后再将其传递到pytesseract。这提高了准确性。 这是一个示例:

import cv2
import numpy as np
import pytesseract
from PIL import Image

# Grayscale image
img = Image.open('E:\\WorkDir\\KAVSEE\\Python\\test.jpg').convert('L')  
ret,img = cv2.threshold(np.array(img), 125, 255, cv2.THRESH_BINARY)

# Older versions of pytesseract need a pillow image
# Convert back if needed
img = Image.fromarray(img.astype(np.uint8))

print(pytesseract.image_to_string(img))

希望这会有所帮助:)