Tesseract: проблемы с символом верхнего регистра

Я использую Tesseract с Python. У меня есть изображение с 1-6 словами, и мне нужно прочитать текст. Иногда символ «C», который выглядит одинаково в верхнем и нижнем регистре, определяется как нижний регистр c, а не верхний регистр C. Я вижу проблему, но в контексте следующих букв должно быть возможно определить правильное обозначение . Есть ли какая-нибудь конфигурация или что-то, чтобы это улучшить? Я использую этот код

import pytesseract
import argparse
import cv2
import os

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,
    help="path to input image to be OCR'd")
args = vars(ap.parse_args())

# load the example image and convert it to grayscale
image = cv2.imread(args["image"])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# write the grayscale image to disk as a temporary file so we can
# apply OCR to it
filename = "{}.png".format(os.getpid())
cv2.imwrite(filename, gray)

# load the image as a PIL/Pillow image, apply OCR, and then delete
# the temporary file
text = pytesseract.image_to_string(gray)
print("Output: " + text)

Я взглянул на параметры конфигурации config = '- psm x' с разными значениями для x, но ничего не подходит для моей проблемы


person csi    schedule 18.09.2019    source источник
comment
Возможно, вам придется выполнить предварительную обработку изображения, чтобы сгладить / удалить шум с помощью морфологических операций. Не могли бы вы добавить свое входное изображение?   -  person nathancy    schedule 18.09.2019


Ответы (1)


Обновление с Tesseract 3 до Tesseract 5 устранило проблему.

person csi    schedule 19.09.2019
comment
Застрял с той же проблемой, есть подсказки, какую версию 5 Tesseract вы использовали или где ее найти? Вы сами его собрали? Спасибо! - person Steffen Funke; 21.06.2020