Извлечь данные из изображения с помощью Python / OpenCV / Tesseract? - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь извлечь часть содержимого из обрезанного изображения. Я пробовал сопоставлять шаблоны с pytesseract и opencv, но результаты очень плохие. Сопоставление с шаблоном OpenCV иногда не удается из-за низкого качества значков, а тессеракт выдает мне строку текста с ложными символами.

Я пытаюсь получить значения следующим образом:

0: 26 83 1 1

Какие-нибудь мысли или техники?

enter image description here

1 Ответ

1 голос
/ 10 апреля 2020

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

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

Первый метод

  1. Размытие по Гауссу изображения
  2. Порог изображения
  3. Расширить изображение
  4. Найти контуры
  5. Сортировать контуры по высоте
  6. Создать ограничивающие рамки вокруг соответствующих контуров

Второй метод

  1. Вручную создавайте области интереса вокруг области, с которой вы хотите прочитать текст
...