Тессеракт ведет себя непоследовательно при извлечении текста из сегмента - PullRequest
0 голосов
/ 31 марта 2020

Я построил некоторый код с OpenCV и Tesseract с целью извлечения текста из изображения. Перед фактическим извлечением я нахожу контуры областей, которые содержат текст и go через них, в l oop ниже.

for contour in contours:
    x, y, w, h = cv2.boundingRect(contour)

    image_segment = image[y:y + h, x:x + w]

    cv2.imshow('Image Segment', image_segment)
    cv2.waitKey(0)

    print(pytesseract.image_to_string(image_segment, lang='por'))

Во время выполнения некоторых тестов я понял, что у Tesseract возникли проблемы с несколькими указанными c сегментами. И в процессе выяснения того, что было не так, я сохранил проблемные c сегменты (щелкнув правой кнопкой мыши на окне, отображающем их), чтобы выполнить некоторые оценки.

Через некоторое время я закончил случайно заметив, что, если я запускаю сегменты, которые я сохранил на своем P C через Tesseract, некоторые результаты, которые были неверны в l oop, оказываются правильными, даже если изображение точно такое же, в хотя бы визуально.

Следовательно, я полагаю, что в сегменте должна быть какая-то скрытая информация, которая должна мешать Тессеракту, и эта информация каким-то образом исключается, когда я выполняю ручное сохранение.

Итак, вопрос в том, что именно? Какую дополнительную обработку изображения мне нужно сделать?

Дополнительная информация:

  • Исходное изображение (из которого я пытаюсь извлечь текст) представляет собой файл JPEG. Тот, который я сохраняю на своем компьютере вручную (и который позволяет Tesseract получить правильный результат), оказывается файлом PNG.

  • Изображение «сканируется» с помощью l oop в оттенках серого.

  • Я бы опубликовал изображение, о котором идет речь, но оно содержит конфиденциальные данные. Я могу попытаться найти нечувствительный пример, если это окажется необходимым.

Обновление:

Я сохранил тот же сегмент в файл PNG с помощью кода и встроенный скрипт Python, чтобы проверить, совпадают ли два изображения. PNG, который я сохранил вручную, несколько отличается от PNG, который я сохранил с помощью кода. Так что в изображении определенно есть некоторая информация, которая повышает точность Тессеракта.

...