wyciaganie Stringa z obrazka

0

Interesuje mnie sposoby jak odczytać jakiś napis na podstawie analizowania obrazu jako zdjecia - tzn.
robimy np. printscreena przycisku i nastepnie "odgadujemy napis" - kiedyś widzialem takie programy do zamiany skanowanych zdjec (np. ston ksiazek) na pliki tekstowe. Cos w tym guście.

Dokladnie to chce odczytywac wartości zwracane przez program w trybie dynamicznych zapytac a nastepnie moc sobie analizowac te wartosci - wszystko ma sie odbywac automatycznie i probowac nasladowac naturalne zachowanie uzytkownika programu.

Czekam na wszelkie sugestie jak mozna by taki pomysl zrealizowac i jak najlepiej do tego podejsc.

p.s. pisze na forum javy bo w tym jezyku chcialbym to napisac

0

Chodzi ci pewnie o programy OCR (np: Fine Reader).
Jeśli sam chciałbyś coś takiego zrobić to musiałbyś mięć bazę czcionek i z nimi porównywać to co miałbyś na obrazku.

0

Tworzący filtry antyspamowe robią te obrazki właśnie w celu utrudnienia życia takim jak ty. Zmieniają kolory, deformują litery, nakładają je na siebie, zaciemniają pseudolosowym szumem - tak aby program, który potrafił to odczytać był ekstremalnie trudny. Realnie oznacza to, że jeżeli zrobisz program, który będzie wszystkie takie obrazki poprawnie odczytać, to mógłbyś za samą licencję do swojego programu zarobić dosłownie miliony jak nie miliardy dolarów. A to z tego powodu, że wtedy Twój program byłby obliczeniowo tak prawie wydajny jak ludzki mózg, co oznacza, że mógłbyś zbudować prawdopodobnie sztuczną inteligencję.
A w takim wypadku spam byłby Ci raczej niepotrzebny.

Podejrzewam jednak, że taka kariera Ci obecnie nie grozi. :)

0

własnie o to chodzi, ze zrobienie sobie bazy literek czcionki to zaden problem. Chciałbym odszukiwać słowa w jednej konkretnej aplikacji. Myslalem aby zrobić automatycznie printscreen'a a nastepnie okreslajac sobie pewne prostokąty (na podstawie charakterystycznego koloru tla) odnajdować pola tekstowe i w nich wyszukiwac tekst.
Ale jak wlasnie to porównywać ? Nie chce budowac aplikacji graficznej - to mialo sluzyc automatyzacji testow. Wyszukiwanie tekstu powinno być szybkie - a operacje na grafice raczej temu nie bede w javie imponujace pod tym wzgledem.

Olamagato - dzieki za odpowiedz, ale źle odkryles moje intencje. Powiem, tak - te generatory szumów i innych dziwnych utrudnien czesto gesto sa przesadzone - uzytkownik musi sie natrudzic 10 min zeby odczytac kod - nie lepiej zrobic proste losowe zapytania "Czy jestes automatem?"

0

Na proste pytanie zawsze odpowie automat. I zawsze odpowie, że jest człowiekiem bo inaczej jaki byłby sens w próbie zastępowania człowieka? :>
Żeby łatwo określić czy interakcję przeprowadza człowiek czy maszyna należy zawsze pytać tak, żeby maszyna nie była w stanie poprawnie odpowiedzieć. Próba okiwania ma zawsze na celu przedstawienie się jako człowiek, ale wykonanie czegoś z prędkością lub cierpliwością maszyny. Najczęściej istnieją ważne powody aby do programu logował się lub używał go człowiek. Powody dla których ktoś inny chciałby to zmienić najczęściej nie są zbyt czyste. Przede wszystkim z tego powodu, że maszyna nie autoryzuje się, ani nie jest osobą. Jeżeli więc maszyna zrobi coś w imieniu człowieka, to nie można mieć pewności, że zrobi to w imieniu tego człowieka, jako który uda się jej autoryzować. Zwykle więc takie działanie jest niejawnym działaniem jednego człowieka (np. programisty) w stosunku do innego człowieka (użytkownika). A takie działania są bardzo często wrogie lub szkodliwe. Przyjemne niespodzianki zdarzają się rzadko.

1 użytkowników online, w tym zalogowanych: 0, gości: 1