ПредишенСледващото

Обикновено gocr признаване CAPTCHA и PHP, stackoff

С течение на една от задачите на програмирането беше даден капитан. искате да бъде признат в рамките на 15 секунди. Ръчно въведени данни е невъзможно, тъй като тя се състои от 96 знака, азбуката са 16 шестнадесетичен стойност. Да, така че това е един дълъг CAPTCHA 🙂 Но задачата така в програмирането клон, а след това ще решим.

Външно, изображението изглежда по следния начин:

Предимството на алгоритъма за генериране може да включва малки герои и техния брой. За останалата част, за да разкрият това не е трудно. Признаване на CAPTCHA, като всеки друг под формата на изображения може да се направи по различни начини. Реших да се готовия РОК. Това е едно от нещата, които върши повечето работа за нас. Експериментирайте с различни софтуер, предназначен за оптично разпознаване на символи, спря gOCR. Тази програма е налице при всички общи операционни системи, но е по-приятно - е в хранилищата на Ubuntu (което BackBox разпределение е построен).

Инсталиране gOCR

Използвах да се насладите на APT пакет мениджър, така че:

Gotsr настройка, можете да проверите ефективността й, като работи в терминал gocr <опции> / Път / до / изображение

Тъй като в случая на базови стойности са 0-9 и а-е, ние ги определят като параметър -С.

Обикновено gocr признаване CAPTCHA и PHP, stackoff

Не е зле. Успешно призната от почти всички герои, с изключение на четири, девет и нула, която съм маркирани в червено. Тя може да се остави и това е така, но това няма да стане, оставете въпроса в ранда () съдбата на лоша идея. Така че ние имаме две възможности:

  1. обучават gocr за точно разпознаване на проблемни символи
  2. използвайте опцията си да се коригира

Аз избрах втория начин, тъй като търсенето на информация за обучение gOCR'a желание дългове. Изборът падна на PHP и GD модул.

Изрежете 0, 4 и 9 в отделните файлове, аз започнах кодиране добитък.

За да започнете разговора чрез shell_exec gocr и превежда героите в масива.

Тогава ние ще премине на получения низ, а ако nnatknulis по спорен характер, който може да бъде 0, 4, или девет - предизвикват нашата функция getChar (позиция) с аргумент позицията на герой в низа.

функция задача е да се сравни парчета с изображения, получени от пълната CAPTCHA всички издълбани на ръка от мен знаци. Ако броят на бели пиксели в двете части на едно и също място за повече от 8 единици, писане $ отговорът на [$ поз].

Ние се получи крайния резултат след обработка.

Подкрепете проекта - споделете линка, благодаря!