Recunoscând capturile simple captcha gocr și php, stackoff

Recunoscând capturile simple captcha gocr și php, stackoff

Când una dintre sarcinile de programare a fost finalizată, Capcha a fost dat. care trebuiau recunoscute în 15 secunde. Introducerea manuală a datelor este nerealistă, deoarece este compusă din 96 de caractere, iar valorile alfabetice sunt hexazecimale. Da, aceasta este o captură lungă 🙂 Dar sarcina este, prin urmare, în ramura de programare, deci vom decide.

În exterior, imaginea arată astfel:

În avantajul algoritmului de generare, simbolurile mici și numărul lor pot fi atribuite. În rest, nu este dificil să rezolv acest lucru. Recunoașterea acestei captcha, precum și a oricăror alte sub formă de imagine, poate fi efectuată în mai multe moduri. Am decis să utilizez OCR finalizat. Acesta este genul de lucru pe care majoritatea lucrărilor o fac pentru noi. După ce a experimentat diverse programe destinate recunoașterii optice de caractere, el sa oprit la gOCR. Acest program există pentru toate sistemele de operare comune, dar ceea ce este mai plăcut este că există ubuntas în depozitele (pe care este construită distribuția BackBox).

Instalarea gOCR

Sunt obișnuit să folosesc managerul de pachete APT, prin urmare:

După stabilirea stării, puteți verifica performanța acestuia executând în gocr terminalului <опции> / cale / spre / imagine

Deoarece în cazul nostru baza este 0-9 și a-f, le-am setat prin parametrul -C.

Recunoscând capturile simple captcha gocr și php, stackoff

Nu-i rău. Aproape toate simbolurile, cu excepția celor patru, nouă și zero, pe care le-am evidențiat cu roșu, au fost recunoscute cu succes. Ați putea lăsa acest lucru, dar nu va funcționa, lăsând acest caz pentru rand (), soarta este o idee proastă. Prin urmare, avem două moduri:

  1. gocr pentru recunoașterea corectă a caracterelor problematice
  2. utilizați opțiunea pentru corecție

Am ales a doua cale, pentru că nu am fost interesat să învăț despre învățarea GOCR. Alegerea a căzut pe PHP și modulul GD.

Taierea 0, 4 și 9 în fișiere separate, am procedat la codificarea vitelor.

Pentru a începe, apelați prin shell_exec gocr și traduceți caracterele într-un matrice.

Apoi, vom trece pe șirul rezultat, și dacă nnatknulis pe un personaj controversat, care poate fi 0, 4, sau nouă - care cauzează funcția noastră getchar (poziție) cu poziția Argumentul unui caracter din șirul.

Sarcina funcției este de a compara o bucată din imaginea obținută din captura completă cu toate simbolurile pe care le taie manual. Dacă numărul de pixeli albe în ambele bucăți la aceleași poziții este mai mare de 8 bucăți, atunci vom suprascrie $ answer [$ pos].

În cele din urmă, vom imprima rezultatul după procesare.