Ответы пользователя по тегу OpenCV
  • Как реализовать чтение текста над линиями OpenCV?

    @Nuchimik
    Под документом вы подразумеваете Word, PDF, другой формат или обычное изображение? Или в этих документах содержатся изображения с текстом?

    Если же ваша задача состоит в том, чтобы распознавать текст в определенных местах (т.е. вам не нужен сырой текст, распознанный тессерактом, а важно местоположение этого текста), вы можете следовать следующему алгоритму:
    1. Извлечь изображение с линиями и текстом из вашего документа (этот шаг опционален, потому что не известен формат входящих данных из вашего вопроса).
    2. Применить медианную фильтрацию. Данный вид фильтрации хорошо подойдет для вашей задачи, а также достаточно просто в понимании. О ней вы можете почитать тут и тут (обзор простых фильтров и немного мат. части по фильтрам). Данный фильтр отлично справляется с мелким шумом и не размывает границы, что очень важно для вашей задачи. Пример на opencv
    3. Далее вам необходимо найти линии. Подразумеваю, что они горизонтальные. Но даже если не так, это не страшно. Вы можете использовать преобразования Хафа. Но перед этим, вы должны использовать какой-нибудь детектор границ. Самым распространенным является детектор границ Кэнни (Статья на Хабре). Пример на opencv
    4. По найденным линиям, вы можете определить, необходимо ли повернуть изображение, если линии не строго горизонтальные. Данный шаг необходим для получения более точных результатов от тессертакта.
    5. После чего, просто сортируете в нужном вам порядке линии и по координатам извлекаете текст.


    P.S. Данный алгоритм применим для задачи, которую вы описали в вопросе.
    Ответ написан
    Комментировать