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

Я хочу обнаружить текстовую область из изображения в качестве этапа предварительной обработки для движка OCR tesseract, двигатель работает хорошо, когда входной текст является только текстовым, но когда входное изображение содержит контент Nontext, он падает, поэтому я хочу обнаружить только текстовый контент на изображении, любой идея о том, как это сделать, будет полезна, спасибо.

Взгляните на эту технику с ограничивающей коробкой , демонстрируемую кодом OpenCV:

Вход :

введите описание изображения здесь

Разрушено :

введите описание изображения здесь

Результат :

введите описание изображения здесь

Ну, я не очень хорошо разбираюсь в обработке изображений, но надеюсь, что смогу помочь вам в теоретическом подходе.

В большинстве случаев текст формирует параллельные горизонтальные строки, где пространство между строками будет сталкиваться с множеством фоновых пикселей. Это может быть использовано для решения этой проблемы. Итак … если вы составляете все пиксельные столбцы на изображении, вы получите изображение шириной 1 пиксель в качестве вывода. Когда входное изображение содержит текст, выход будет очень вероятен для периодического шаблона, в котором темные области будут сопровождаться яркими областями. Эти « группы » более темных пикселей будут указывать на положение текстового содержимого, тогда как более яркие « группы » укажут промежутки между отдельными строками. Вероятно, вы обнаружите, что более яркие области будут намного меньше, чем другие. Текст гораздо более общий, чем любой другой элемент изображения, поэтому его следует легко разделить.

Вы должны выполнить процедуру для обнаружения этих периодических повторений. Как только скрипт может определить, что входное изображение имеет эти характеристики, есть большая вероятность, что он содержит текст. (Однако этот подход не может отличить фактический текст от простых горизонтальных полос …)

На следующем этапе вы должны найти способ определения границ абзацев, используя вышеупомянутый метод. Я думаю о хорошем фиктивном алгоритме, который делит входное изображение на более мелкие узкие полосы (50-100 пикселей), и он будет проверять эти области отдельно. Затем он сравнил эти результаты с построением карты возможных областей, заполненных текстом. Этот метод не был бы настолько точным, но, вероятно, он не беспокоил систему OCR.

И, наконец, вам нужно использовать текстовую карту для запуска OCR только в желаемых местах.

С другой стороны, этот метод терпит неудачу, если входной текст будет повернут более чем на 3-5 gradleусов. Есть еще один backdraw, beacuse, если у вас всего несколько строк, тогда ваш поиск шаблонов будет очень ненадежным. Больше строк, больше точности …

С уважением, Г.

Я новичок в stackoverflow.com, но я написал ответ на вопрос, подобный этому, который может быть полезен для любых читателей, которые разделяют этот вопрос. Вопрос о том, действительно ли этот вопрос является дубликатом, поскольку этот был первым, я останусь другим. Если мне нужно скопировать и вставить этот ответ, дайте мне знать. Я также сначала нашел этот вопрос в google, а не тот, на который я ответил, поэтому это может принести больше пользы людям со ссылкой. Тем более, что он предоставляет разные способы поиска текстовых областей. Для меня, когда я поднял этот вопрос, это не соответствовало моему проблемному делу.

Обнаружение текстовой области в изображении с использованием python и opencv

  • Фильтр карты перемещения в OpenCV
  • Как обрезать изображение с помощью C #?
  • Преобразование RGB в черно-белый в OpenCV
  • Полученные на основе контента графические изображения и диаграммы точности-повторения с использованием цветовых гистограмм в MATLAB
  • Загрузите все изображения из каталога
  • Как использовать свойство ScanLine для 24-битных растровых изображений?
  • Качество сохраненного JPG в C #
  • Как найти Waldo с Mathematica?
  • конвертировать RGB-изображение в оттенки серого. Уменьшение объема памяти в java
  • подключенных компонентов в OpenCV
  • Как я могу нарисовать изображение программно на iPhone?
  • Давайте будем гением компьютера.