С течение на една от задачите на програмирането беше даден капитан. искате да бъде признат в рамките на 15 секунди. Ръчно въведени данни е невъзможно, тъй като тя се състои от 96 знака, азбуката са 16 шестнадесетичен стойност. Да, така че това е един дълъг CAPTCHA 🙂 Но задачата така в програмирането клон, а след това ще решим.
Външно, изображението изглежда по следния начин:
Предимството на алгоритъма за генериране може да включва малки герои и техния брой. За останалата част, за да разкрият това не е трудно. Признаване на CAPTCHA, като всеки друг под формата на изображения може да се направи по различни начини. Реших да се готовия РОК. Това е едно от нещата, които върши повечето работа за нас. Експериментирайте с различни софтуер, предназначен за оптично разпознаване на символи, спря gOCR. Тази програма е налице при всички общи операционни системи, но е по-приятно - е в хранилищата на Ubuntu (което BackBox разпределение е построен).
Инсталиране gOCR
Използвах да се насладите на APT пакет мениджър, така че:
Gotsr настройка, можете да проверите ефективността й, като работи в терминал gocr <опции> / Път / до / изображение
Тъй като в случая на базови стойности са 0-9 и а-е, ние ги определят като параметър -С.
Не е зле. Успешно призната от почти всички герои, с изключение на четири, девет и нула, която съм маркирани в червено. Тя може да се остави и това е така, но това няма да стане, оставете въпроса в ранда () съдбата на лоша идея. Така че ние имаме две възможности:
- обучават gocr за точно разпознаване на проблемни символи
- използвайте опцията си да се коригира
Аз избрах втория начин, тъй като търсенето на информация за обучение gOCR'a желание дългове. Изборът падна на PHP и GD модул.
Изрежете 0, 4 и 9 в отделните файлове, аз започнах кодиране добитък.
За да започнете разговора чрез shell_exec gocr и превежда героите в масива.
Тогава ние ще премине на получения низ, а ако nnatknulis по спорен характер, който може да бъде 0, 4, или девет - предизвикват нашата функция getChar (позиция) с аргумент позицията на герой в низа.
функция задача е да се сравни парчета с изображения, получени от пълната CAPTCHA всички издълбани на ръка от мен знаци. Ако броят на бели пиксели в двете части на едно и също място за повече от 8 единици, писане $ отговорът на [$ поз].
Ние се получи крайния резултат след обработка.