RecognizeCaptcha
function RecognizeCaptcha(
ImageName: string;
BaseFile: string;
[BGDelMethod: (non, rc, sm)];
[Border: Byte];
[Noise: Integer];
[Tolerance: Integer];
[NeighborhoodFar: Byte];
[RotationLimit: Real];
):string;
Функция RecognizeCaptcha возвращает результат распознавания капчи.
Параметры:
ImageName – произвольное имя которое присваивалось картинке при загрузке. См. DownloadPicture
BaseFile – имя файла базы, пример 'captchabaze.cbz'. Обратите внимание, что путь к файлу не прописывается, только его имя. И находиться рабочие базы могут исключительно в директории data\captcha\
[Необязательные параметры]:
BGDelMethod: (non, rc, sm) – метод отделения символов от фона изображения. Принимает одно из трех значений (non по умолчанию). В принцип обработки я вдаваться не буду, выбор значения этого параметра лежит на CaptchaManager.
Border – [-1..255] порог отделения символов от фона. Используется только при BGDelMethod=(non or sm). Его значение определяет CaptchaManager.
Noise – [0..999999] приводит к игнорированию участков изображения площадь которых меньше или равна значению Noise, что помогает избавиться от случайного мусора.
Tolerance – [0..999999] допустимое отклонение при поиске символа в базе. Значение 0 означало бы, что любая разница недопустима. Высокое значение наоборот привело бы к поиску между всеми возможными вариантами. Значение по умолчанию 40. Увеличение этого значения приведет к замедлению работы. Уменьшение сделает поиск по базе предельно быстрым, но уменьшит вероятность успешного поиска.
NeighborhoodFar – [1..999999] максимальное расстояние до точек принадлежащих одному и тому же символу. Значение по умолчанию 1 – это значит что символ при отделении от заднего фона остался целым. В случае с очень тонкими и невыразительными символами могут происходить разрывы, в связи с чем программа посчитает куски одного и того же символа отдельными и независимыми частями. Что бы этого избежать можно слегка увеличить значение этого параметра, но с этим стоит быть осторожным, иначе программа начнет воспринимать разные символы как единое целое.
RotationLimit – [0..3,2] по умолчанию 0,4.
Пример:
Капчи со склеенными символами на текущий момент функцией не поддерживаются, но готовая реализация у меня есть, так что это только вопрос времени как скоро она появится в HBR.