Разгадывание капчи на Delphi (графика)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Apeckou, 16 Aug 2013.

  1. Apeckou

    Apeckou Elder - Старейшина

    Joined:
    23 Jan 2007
    Messages:
    143
    Likes Received:
    11
    Reputations:
    0
    Преведствую.

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

    Вводные: капча состоит только из цифр, размер цифр фиксированный, цвет - всегда примерно одинаковый, но JPEG так что одинаковость относительна. Но на этом ништяки кончаются и начинается гемор, а именно:

    1. цифры могут быть повернуты по оси
    2. цифры друг на друга часто залезают, при чем они несплошные, что вообще ад
    3. поверх всех этих цифр еще 2-3 жирные полоски, цвет полосок от цвета цифр немного отличается, отделить можно, но когда убираю полоски - есессно теряются довольно большие куски цифр.

    Для начала я всю картинку перевел в черно-белый вариант (без оттенков серого, только black&white).
    Потом я отличил полоски от цифр, удалил их.
    Ну а дальше что делать я хз, самым верным решением кажется дорисовать недостающие куски цифр а потом как-то с помощью шаблонов и наложения анализировать, что за цифра примерно показана, вычисляя площадь черного до наложения шаблона и после него. Шанс ошибиться 10 к 1, невелик но все же...

    Прилагаю примеры исходных и обработанных мною изображений:

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]


    Кто что подсказать может? Фраза про неиронные сети в прошлый раз заставила меня задуматься о тайнах мироздания(
     
  2. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Я конечно сам любитель анализировать изображения каптч, ну просто реально надо задаться вопросом - "Стоит ли оно потраченного времени и сил?", это к тому что может проще будет antigate? А вообще по теме советую почитать статью - пост на habrahabr там чувак изначально разделял изображения, а потом только после этого предлагал воспользоваться морфологическим алгоритмом восстановления. В твоём случае разделять изображения будет не просто ну алгоритм придумать можно и отшлифовать его до хороших показателей. Погляди еще про каптчу Яндекс, хотя когда её ломали цифры не залазили друг на друга ссыль на хабру
    P.S. Удачи короче, а она пригодится.