У меня есть обрезанное изображение с счетчика воды, которое я хочу преобразовать в строку целых чисел с помощью pytesseract.Вывод моего исходного изображения «meter1.png» должен выглядеть как «524621».Вот мой код:
import cv2
import pytesseract
img = cv2.imread('/<directory>/downloads/meter1.png')
# apply grayscale and binary threshold
grayscaled = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
retval, threshold = cv2.threshold(grayscaled, 80, 255, cv2.THRESH_BINARY)
# cv2.imshow('img', img)
# cv2.imshow('threshold', threshold)
# save the image
cv2.imwrite('/<directory>/downloads/meter1_thresh.png', threshold)
# convert threshed image to text
print(pytesseract.image_to_string('/<directory>/downloads/meter1_thresh.png'))
cv2.waitKey(0)
cv2.destroyAllWindows()
Вывод, который я получаю с помощью jupyter, - 'ic PE Tr 2 11'.Есть ли какое-то преобразование cv2, которое я пропускаю и которое дало бы мне правильный результат (например, обнаружение краев, размытие / сглаживание и т. Д.)?
исходное изображение
пороговое изображение