Kwietnia 24, 2024, 21:13:27 *
Witamy, Gość. Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności:
Nowa strona główna  : http://www.emunes.pl
Zapraszamy do testowania !

Chat: http://chat.emunes.pl
Galeria cartów: http://carts.emunes.pl
 
   Strona główna   Pomoc Zaloguj się Rejestracja  

Reklama
Strony: [1]
  Drukuj  
Autor Wątek: OCR  (Przeczytany 1751 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
Koks
Major
*****
Offline Offline

Wiadomości: 580



OCR
« : Grudnia 26, 2008, 21:22:13 »

Czy jest jakiś darmowy program co by rozpoznawał japońską czcionkę ze screenshotów z emulatora żeby można ją skopiować do google translate? OCRy które testowałem są po japońsku lub nie rozpoznają czcionki.
Zapisane

Częste mycie skraca życie.
"If you have a fast, shiny new Pentium II, you might try using 44 kHz for the ultimate in sound quality." - readme od Unreala
https://drive.google.com/folderview?id=0B2TXQD5v-ZIVfjVQdTl2TTZiWmJ2LWZJajJzS0V4cDZBay04WjVGQkdQdnBDQzRlYkdQVGc&usp=sharing
MWK
Gość
« Odpowiedz #1 : Grudnia 26, 2008, 22:13:05 »

Ja używam Fine Reader'a aczkolwiek tak mi się wydaje, że tak czy siak musisz mieć zainstalowane odpowiednie czcionki/fonty w systemie.

Co na to inni Forumowicze?
Zapisane
joval
<facepalm>
Szeregowy
*
Offline Offline

Wiadomości: 45



« Odpowiedz #2 : Grudnia 26, 2008, 22:54:58 »

Uzywałem kiedyś FineReadera i rzeczywiście, musiał mieć swoje czcionki aby móc je czytać (tak było np. w przypadku kociaków na RS)
Zapisane
andrzejlisek
Kapitan
****
Offline Offline

Wiadomości: 313


« Odpowiedz #3 : Lutego 13, 2009, 15:08:42 »

Nie wiem, czy sprawa wciąż aktualna (szukanie programu rozpoznajacego japońskie teksty w grach NES), ale myślę, że jest lepszy sposób niż taki FineReader.

Wykorzystamy następujące fakty:
- Każdy znak w tekście (obojetnie jaki język) to obrazek 8*8 pikseli
- Ekran gry można podzielć na obrazki 8x8 pikseli, tylko czasem trzeba siatkę podziału przesuwać o pojedyncze piksele, np. w grach z przewijającym się ekranem.
- W obrazku ze znakiem wykorzystane są najczęściej tylko 2 kolory
- Każde wystąpienie danego znaku w tekście to identyczny obrazek

Wobec powyższego myślę, że nie jest jakimś dużym problemem (poza poświęceniem temu trochę czasu) napisanie takiego progrmu przez siebie.

Wcześniej, przygotowujemy screeny w BMP z tekstami, które chcemy odczytać.

Do naszego programu ładujemy screen z pliku BMP, potem ewentualnie ustawiamy przesunięcie siatki podziału w pikselach. Ustawiamy kolory biały i czarny, to znaczy, że przykładowo na screenie jest zielony tekst na czerwonym tle, to ustawiamy, że czerwony ma być traktowany jako kolor czarny, a zielony jako kolor biały (otrzymamy białe znaki na czarnym tle), a inne kolory jako czarny.

Potem robimy START (w jakiejkolwiek formie byłby zrobiony), a program sam pobiera kolejne bloki 8x8 pikseli z obrazka kolejnymi wierszami.

Każdy blok "przepuszcza" przez wcześniej zdefiniowaną "funkcję zmiany kolorów" i jeżeli identycznego nie było, to wyświetla go na ekranie i program pyta się, jaką literę przedstawia. Dajemy odpowiedż i program dopisuje do swojej bazy, że taki, a taki blok przedstawia taką, a taką literę, oraz do tekstu wynikowego dopisuje odpowiedni znak. Natomiast jeżeli już był identyczny blok taki, jak bieżący, to program nic nie pokazuje i o nic się nie pyta, tylko dopisuje do tekstu wynikowego odpowiadajacą temu blokowi literę. A jeżeli blok porzedstawia np. fragment rysunku, to jako literę można dać spację.

W ten sposób program zbiera informację jak wyglądają poszczególne litery w danej grze, i im kolejny obrazek z gry przepuścisz tym mniej razy program się zatrzyma z pytaniem o to jaki znak przedstawia dany blok. Ewentualnie można ustawić taką opcję, że nawet, jak nie ma danego bloku w bazie, to program o nic nie pytając się, uzna ten blok jako spację.

W tym przypadku nic nie stoi na przeszkodzie, żeby blokom przypisywać litery w wersji fonetycznej, czyli w postaci odpowiedników alfabetu łacińskiego.

Czasem jedna baza może posłużyć do dwóch gier, jeżeli obie gry mają identyczny wygląd znaczków japońskich.

Oczywiście ten sam program może posłużyć do wydobywania tekstu angielskiego.

Obejrzyj program SubRip (ten program służy do wydobywania listy dialogowej z oryginalnych płyt DVD), on działa na podobnej zasadzie, jak algorytm, który proponuję.

Jeżeli ktoś umie trochę programować pod DOS lub Windows, ewentualnie Linux, jak ktoś ma ten system operacyjny, to powinien sobie poradzić bez większego problemu.

Polecam kompilatory FreeBasic, FreePascal, w nich programuje się odpowiednio w języku Basic i Pascal, oba języki są łatwe do opanowania.
« Ostatnia zmiana: Lutego 13, 2009, 15:12:15 wysłane przez andrzejlisek » Zapisane
Koks
Major
*****
Offline Offline

Wiadomości: 580



« Odpowiedz #4 : Lutego 16, 2009, 13:39:24 »

Dzięki. Dobry pomysł, chyba sobie takie coś napiszę, ale nie w Basicu czy Pascalu, a w asemblerze.
Zauważyłem też, że litery w wersji fonetycznej można zobaczyć w windowsowej tablicy znaków - o ile się ma zainstalowane języki wschodnioazjatyckie.
Zapisane

Częste mycie skraca życie.
"If you have a fast, shiny new Pentium II, you might try using 44 kHz for the ultimate in sound quality." - readme od Unreala
https://drive.google.com/folderview?id=0B2TXQD5v-ZIVfjVQdTl2TTZiWmJ2LWZJajJzS0V4cDZBay04WjVGQkdQdnBDQzRlYkdQVGc&usp=sharing
Strony: [1]
  Drukuj  
 
Skocz do:  

Działa na MySQL Działa na PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC Prawidłowy XHTML 1.0! Prawidłowy CSS!
Strona wygenerowana w 0.027 sekund z 18 zapytaniami.