Обработка изображения с помощью OpenCV

388
18 февраля 2017, 06:20

Стоит задача распознавания капчи с некоторого ресурса.

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

Исходное изображение в оттенках серого.

Проблема в том, что не понятно как произвести предобработку изображения перед распознавание.

Например, как привести изображение к бинарному виду (чёрный фон, белые символы или наоборот)?

Использую OpenCV

Answer 1

Легко от фона не избавитесь, чтобы оставить одни цифры. Делайте так:

  • Canny
  • findContours
  • цикл по контурам с целью избавиться от контуров, которые примыкают к краям, или слишком широкие, или содержат вертикальные или горизонтальные прямые линии.
  • в оставшихся контурах останутся контуры символов с незначительными примесями, можно их например нарисовать черным на белом (drawConrours) сделать erode и отправить OCR

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

READ ALSO
MPI -обновление флага

MPI -обновление флага

Изучаю MPI, появился вопрос:

320
sort не работает с std::bind

sort не работает с std::bind

Почему код не работает, если вместо 3 вставить число меньше 6И как это можно исправить? Код должен сортировать вектор с помощью функтора std::greater,...

351
В каких случаях возникает потребность использования raw pointers в современном C++?

В каких случаях возникает потребность использования raw pointers в современном C++?

После появления новых возможностей в C++ таких как std::make_shared() и std::make_unique то возникает вопрос : А есть ли хоть один случай, когда действительно...

316
запрос на откат даты поста на сайте mysql

запрос на откат даты поста на сайте mysql

ЗдравствуйтеМожно ли сгенерировать sql запрос таким образом, чтобы все сообщения на форуме были датированы 2011 годом? Форум основан на mybb

325