Тессеракт не может распознать капчу текста - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь распознать текст в капче, и это невозможно для меня. Я использую python3, openCv и tesseract.

Упрощенный код:

import cv2                                                           
from pytesseract import *

img_path = "path"

img = cv2.imread(img_path)
img = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

pytesseract.image_to_string(img)

Я думаю, что я должен сначала удалить цветные линии, а затем оставить текст в покое, и, возможно, изменить яркость и контрастность. Какой фильтр можно применить?

Это некоторые изображения для распознавания.

1 Ответ

0 голосов
/ 17 апреля 2019

Для распознавания каптч-текста с помощью pytesseract-ocr вы можете сделать следующее ..

  • Подготовьте настраиваемый train_set для обучения вашего экземпляра tesseract распознаванию определенного шрифта [Необязательно]

  • Изображения капчи нуждаются в предварительной обработке (например, * Применить черно-белый фильтр> Масштаб (вверх)> Размытие> Морфологическое преобразование + Адаптивный порог *), чтобы улучшить текстовую часть и уменьшить шумы / линии.

  • Для удаления линий: в примерах изображений только текст можно видеть черным цветом, а черная линия отсутствует, поэтому вы можете просто преобразовать каждый не черный пиксель в белый, используя PIL или OpenCV. может даже использовать какой-то конкретный алгоритм, такой как Hough Line Transform, для обнаружения и удаления линий.

Вы можете узнать обо всех этих фильтрах и алгоритмах из официальной документации и учебного руководства на сайте OpenCV.

...