Всем доброе время суток,
Возникла проблема удаления шумов у
captch-ей, после прочтения документации найденной в
Гугле и
Wikipedia, пришел вот к такому выводу:
Главное надо отловить уровень цвета (в градации серого) который надо оставить, а остальное загасить. На данный момент я делаю вот так:
1) Перевожу фотку в черно белый режим (градация серого)
2) Проверяю позицию цвета пикселя, если это значение выше лимита то оставляю (черный) в противном случае воспринимаю его как фон (белый)
3) Полученное черно белое изображение уже анализирую, при этом по теории черным остается текст, а остальное фон - белый.
При этом у меня появилось несколько идей, первое проверять каждый пиксель, если верхний и нижний или правый и левый пиксели одного цвета и отличаются от него самого (по цвету) то это либо линия толщиной в один пиксель либо выступ в один пиксель, в первом и во втором случае его можно легко удалять. Проблема возникает в случае если две линии пересекаются, тогда центральный пиксель остается (так как соседи его цвета линии).
Еще есть такая идея, пройтись по всему изображению и найти все островка (группы пикселей не фонового цвета) и проверят их размер, если размер маленький то удалять к чертовой матери.
Читая доку пришел к выводу что для каждой капчи нужно искать свой подход, другими словами, нет смысла пытаться найти уникальное решение, намного легче искать уязвимые места каждой
Что вы думаешь на это счет?
Заранее благодарю за помощь