Witam,
od dłuższego czasu zastanawiam się, jaki byłby najefektywniejszy sposób napisania łamacza kapczy, w miare łatwy do implementacji. Przede wszystkim:
- jak rozwiązać detekcję stałych elementów, symetryczny szum (tzn. jakieś kratki, linie, okręgi [od małego coraz większe]) - czy może to nawet nie jest potrzebne?
- rozróźnianie liter - w tej chwili posiadam algorytm który litery koloruje na czarno, resztę na biało, działa to tak, że mam wypisane zakresy podstawowych barw - może zrobić to na zasadzie kontrastu, jak to zaimplementować?
- wycinanie liter - obecnie szuka linii pionowych całkowicie białych najbliżej czarnego piksela w kolumnie obok - jest na to jakiś algorytm, który wytnie/wyszuka te litery nawet kiedy odstęp będzie również w poziomie?
- porównywanie znaków - w tej chwili po wycięciu liter, sklauje je do obrazka 25x60, zapisuję pod odpowiednią nazwą (z[0-9]*.png oznacza 'z', natomiast z_[0-9]*.png duże 'Z') i porównuje na zasadzie bitowego AND - przypominam mam tylko dwa kolory, czarny i biały - jak można to zrobić lepiej, w tym momencie kiedy litera jest przesunięta w pionie/poziomie wskażnik 'podobieństwa' maleje, natomiast kiedy litera jest obrócona wokół własnej osi za każdym razem o losowy kąt, nie rozpozna jej. Może jakaś sieć neuronowa? Chciałbym jeszcze potem dopisać moduł, służący do sprawdzenia, czy OCR captchy był prawidłowy, ale to już mały problem.
Proszę o poważne odpowiedzi, z góry dzięki.