Очень часто попадается капча с таким шумом как точки и линии, пора бы от них избавится.
Точки(CLEAR_INTERFERENCE). От точек избавится легко, первое как всегда приводим капчу в черно белый вид, ищем черный пиксель, и запоминаем его и всю цепочку пикселей что прилегают к нему и к его прилагающим, далее считаем сколько пикселей собрали, если их примерно меньше 10(зависит от капчи), то значит это шум из точек который можно закрасить.
Трещины — это разрыв между пикселями из-за которого теряется целостность символа, в последствии его невозможно считать.
Тут нам нужно эти трещины залепить, делаем так, преобразуем капчу в черно белую, перебираем пиксели, по вертикали и горизонтали, и закрашиваем пиксели которые находятся между двух черных, ну или можно увеличить расстояние, зависит от капчи
В итоге имеем функцию SEAL_MICROCRACKS которая порадует нас следующим результатом
Линии(CLEAR_LINES). Логика удаления линий следующая, перебираем пиксели с верху в низ, пока не попадется черный пиксель, как нашли идем ниже и считаем сколько черных пикселей в высоту, если их мало, 2-3(зависит от капчи) значит это пересекающая линия и эти пиксели можно закрасить. Главное чтобы линии не были толще или такими же по толщине как и символы на капче, иначе такой вариант не прокатит.
А Теперь наглядный пример
[LOAD_CAPTCHA][https://www./modules/captcha/captcha.php?r=login] [DISPLAY_IMG] [COLOR_TRESHOLD][128] [DISPLAY_IMG] [CLEAR_LINES][2] [CLEAR_INTERFERENCE][20] [DISPLAY_IMG] [SAVE_CAPTCHA]
на первой каптче, если узор на символах статичный, можно было обойтись простым подсчетом пикселей, на этих пятёрках четко видно, что узоры одинаковые