Я пытаюсь определить цены с помощью pytesseract.
Однако у меня очень плохие результаты.
У меня есть одно большое изображение с несколькими ценами в разных местах. Эти места постоянны, поэтому я обрезаю изображение и сохраняю каждую область как новое изображение, а затем пытаюсь определить текст.
Я знаю, что текст будет содержать только 0123456789 $ ¢.
Я тренировал свой новый шрифт с помощью trainyourtesseract.com.
Например, я беру это изображение.
Удвойте его размер и пороговое значение, чтобы получить его.
Запустите его через tesseract и получите вывод 8
.
Любая помощь приветствуется.
def getnumber(self, img):
grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh, grey = cv2.threshold(grey, 50, 255, cv2.THRESH_BINARY_INV)
filename = "{}.png".format(os.getpid())
cv2.imwrite(filename, grey)
text = pytesseract.image_to_string(Image.open(filename), lang='Droid',
config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789.$¢')
os.remove(filename)
return(text)