Перейти к содержимому
Compvision.ru
VironZizu

Распознавание текста паспорта, OpenCV!

Recommended Posts

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По игрался с инверсиями и все получилось, спасибо!)

Получилось убрать мелкие шум с изображения, я доволен)осталось научиться как то аккуратней его удалять, а то бывает что с мелким шумом и части букв удаляешь))

Непонимаю, при выполнении собственно копирования с маской появляется такой дибильный эффект с верху! Из за чего это может быть? Причем на разных изображениях одна хрень)) эти полоски)

Cv.Copy(src, dstMask, Mask);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо большое за наводку! а то год бы разбирался!))

 

Продолжаю шлифовать свой алгоритм удаления шумов, уже неплохо, но удаляются периодически и нужные запчасти. Появилась одна идейка, вот хочу узнать, возможно ли реализовать! Вот у меня есть контур, мы смотрим цвет внутри этого контура, если он похож на цвет внутри другого контура, то оставляем, если не похож, то удаляем. Больше всего кончено смущает момент "если похож")) может у вас есть какие-нибудь мысли по этому поводу))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно сравнивать усредненный по всем пикселям цвет контура. 

 

Тут есть два подхода:

1) Задать эталон и порог расстояния вручную, и сравнивать с ним.

2) Провести кластеризацию средних цветов контуров.

    Но тут нужно знать на сколько кластеров будем разбивать.

    И опять задать какой контур оставляем, эталон цвета,

    или определять по количеству (или геометрическим свойствам) контуров в кластере. 

 

Важно еще задать удобную метрику, можно конечно просто евклидово расстояние измерять в RGB пространстве, но есть и другие способы: http://en.wikipedia.org/wiki/Color_difference

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По пробовал сам разобраться, но не получилось. Случаем нету примера как узнать этот усредненный цвет внутри контура? Я так понимаю у одинаковых букв эти цвета должны будут примерно совпадать!? Это было бы здорово!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Smorodov

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

 

Подскажите пожалуйста, вот у меня получился скоп линий, как мне из них построить прямоугольник? Нужна математическая магия судя по всему))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эту тему смотрели?

 

А вообще, поиск прямоугольников имеется и в стандартных примерах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смотрел, ничего полезного для себя не нашел. Примеры для нахождения прямоугольников не отрабатывают для моего случая, так как после бинаризации, когда начинаю искать контуры как там предлагается, он далеко не всегда нужный квадрат находит, так как сканы иногда засвечивают изображения, особенно если документ положить ближе к краю. По моему мнению правильней было бы реализовать через Хью лайнс, он отрабатывает неплохо, но куча лишних линий естественно получается, из них всех нужно как то по пробовать построить прямоугольные области, вот ломаю голову, как!? Если бы находил конкретно 4 линии, было бы все намного проще.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, тут тебе уже должно быть виднее, какие там линии получаются. Может брать самые длинные? Или с наибольшей разностью пикселей по разные границы линии? Сделать полный перебор всех вариантов и каждый вариант проверить на какое-нибудь условие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Моя версия распознавание российского паспорта. При распознавании букв использовал Tesseract

 

  • Thanks 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 часа назад, Король сказал:

Моя версия распознавание российского паспорта. При распознавании букв использовал Tesseract

А первая картинка это что?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Делю изображение по 40 пикселей (это не важно по сколько, зеленого цвета вертикальные линии). Преобразую функцией Собеля изображение. Затем высчитываю разность соседних пикселей по горизонтали. Сглаживаю кривую (красный цвет). Затем высчитываю Максимумы (точки желтого цвета). Затем ищу, чтобы в линии было по 2 и более столбцов (считаю что это текст). Затем поиск минимумов этих максимумов (Блоки с текстом предполагаю - 2 изображение на видео). Как-то так! 

 

1.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата
В 17.02.2020 at 03:05, Король сказал:

Моя версия распознавание российского паспорта. При распознавании букв использовал Tesseract

 

 

Здравствуйте! А как вам удалось выделить в паспорте ФИО? При этом не выделяя остальной не нужный текст?(3 картинка)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну там же стандартный текст, сравните со словариком и уберите )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×