Есть ли в cv2 изменение, которое я могу внести в изображение счетчика воды, чтобы правильно прочитать цифры в pytesseract? - PullRequest
0 голосов
/ 30 января 2019

У меня есть обрезанное изображение с счетчика воды, которое я хочу преобразовать в строку целых чисел с помощью 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, которое я пропускаю и которое дало бы мне правильный результат (например, обнаружение краев, размытие / сглаживание и т. Д.)?

исходное изображение

пороговое изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...