Защита от роботов.
Трудности две: во-первых, цифры расположены на разной высоте, во-вторых, картинка зашумлена. Но есть и хорошие новости: цифры равной ширины, всегда на одних и тех же местах по горизонтали, шрифт всегда один и тот же.
Если бы не было шумов, можно было бы просто подсчитывать суммы значимых точек по вертикали и сравнивать их с просчитанными заранее значениями так я обходил защиту одного из web-mail.
Шум сильно мешает. Я попробовал убирать точки, вокруг которых находится менее трёх точек. Помогло. Далее подсчитал вертикали в цифрах, усреднил значения по нескольким картинкам и просчитал «отпечатки» цифр.
Поскольку после моего простенького удаления шума, цифры несколько страдают, ввел понятие ошибки отклонения от эталона более чем на единицу. Далее всё просто подсчитываю отклонения от всех эталонов и нахожу тот, отклонение от которого минимально.
Погрешность порядка 2-3%. Плохо отличает сильно зашумлённые 8 и 9. Можно, конечно, считать ещё и горизонатали, вводить самокоррекцию и т.д., но мне не хочется. 3% вполне нормальный процент ошибок, распозналось неправильно можно повторить. Мне хватит.
Сама программа тут [ >>> ].
Хакир. :)
Мелочи жизни: в rss относительный урл ушёл.
Комментарий для Mash:
Ну, а почему бы в RSS не быть относительному урлу? :)
Эх, а ведь можно было бы просто вычитанием из каждой цифры всех по-очереди (шрифт-то одинаковый) найти минимум… :) А потом уже отфильтровать помехи. Процент удач должен вырости. Но это я навскидку, не видел картинок…
Можно еще фильтры понапридумывать, которые будут шум убивать. Такие есть…
Комментарий для A!e%:
Много чего можно напридумывать. :) Смысл? :)
Я хранил образы цифр и бегал по всей картинке.
А где можно почитать на эту тему?
Комментарий для Yras:
Почитать на какую тему?
Привет!
Очень интересная тема кстати. Я по надобности сталкивался с подобным вопросом, только там ситуация сложнее — картинка с цифрами была JPEG. Причем степень сжатия разная, так что у цифр нет четких границ. Удаление этой размытости не дает нужного результата, так как цифры заметно меняют форму. Я так подумал и решил работать не с отдельными пикселами, а с чем-то более высоко уровневым. Я рассекаю цифру прямыми и считаю количество пересечений. Получается прямо какой-то искусственный интеллект — работает дяже с разными шрифтами.
Может у кого еще идеи есть, а то уж больно актуален вопрос.
Комментарий для SteveRay:
Весьма интересно :)) Попробуй почитать литературу по OCR, если такая существует, о распозновании образов.
Ну…. :) надо не литературу читать, а пойти поучиться на кафедру ММП ВМиК МГУ. Там как раз занимаются распознаванием образов. Если кому очень сильно надо, могу поделиться умными материалами по этой проблеме, там достаточно серьёзные алгоритмы. Кстати могу обрадовать — мы впереди планеты всей в этом деле )). Например довольно успешно распознаются тексты на всяких там старославянских языках (рукописные ессно ;]). Опять же есть проги — которые по этим самым алгоритмам (кстати с шумами там проблем особых нет), те же циферки с билайна распознают только в путь. Правда проги на дельфе написаны :(
Эх… учился бы там, на сях бы писал :) выгнали, ссуки, 2 раза ;) Опять же кому сильно надо, могу поделиться….
2 Bolk: вот на ту самую литературу по OCR.гугл кое-что дал ,но жиденько.
2 Hoha:Если материали не сильно большие,то закинь на Yras_game(сабака)mail.ru
Комментарий для Yras:
Попробуй зайти во всякие amazon/bolero, посмотреть книги.