我有这幅图像是从另一幅图像裁剪而来的,我想将此图像作为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)
我使用膨胀来获得更好的性能,但是却没有给我想要的输出(有时给我空字符串,有时给我奇怪的输出)
有人知道怎么了吗?
答案 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))
希望这会有所帮助:)