2015-01-02 8 views
5

Sto cercando di implementare un sistema per identificare/rilevare parole di un testo scritto a mano in un'immagine. Devo riconoscere le parole nel testo. Ma sento che è impossibile dal momento che le immagini non sono leggibili nemmeno per me. Per ora quello di cui ho bisogno è separare le parole. Ho solo bisogno di capire che c'è una parola. Quando l'utente seleziona un'area, il sistema dovrebbe selezionare solo una singola parola nell'immagine.Riconoscimento testo scritto a mano con javascript

La mia domanda è: è possibile utilizzare JavaScript?

Ecco un'immagine di esempio. enter image description here

+2

A differenza dei siti del forum, non usiamo "Grazie" o "Qualsiasi aiuto apprezzato", o firme su [così]. Vedi "[Se 'Hi', 'thanks', tagline e saluti saranno rimossi dai post?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) .Ciao, è "Grazie in anticipo", non "Grazie in anticipo". –

+2

Se la domanda è "È possibile utilizzare JavaScript?", allora la risposta è sì! È sicuramente possibile. , in qualsiasi lingua completa. Se la domanda è come farlo bene, questa è una domanda molto ampia ... –

+1

La query di Google utile sarebbe 'javascript optical character recognition'. [OCR] (http: // en. wikipedia.org/wiki/Optical_character_recognition) non è una cosa facile da fare (di solito un software commerciale) e potresti non trovarti pronto a consumare pacchetti open source. L'esecuzione del server OCR sul lato offrirà migliori possibilità in quanto non sarai vincolato dalla piattaforma 'JavaScript' – xmojmr

risposta

5

JS + Canvas e un'implementazione di base della tecnica Viola-Jonesriconoscimento facciale.
Con un manoscritto del genere? Penso che otterrete davvero risultati errati .

È necessario innanzitutto rilevare l'inclinazione orizzontale globale . (Ottenendo il inclinazione si può allo stesso tempo recuperare l'altezza linea.)
Creare un corridore griglia orizzontale 100% come:

0000000000... 
1111111111... 
0000000000... 

dove 0 controllate dopo per luce e 1 per aree scure . Lascia che scorra sui dati di selezione delle immagini dall'alto verso il basso e a tutte le inclinazioni (ad esempio + -15deg max).
Una corrispondenza positiva è quando la griglia (a strisce) restituisce la densità di contrasto della soglia corrispondente al suo raster. Se il corridore non restituisce alcuna corrispondenza, aumentare le dimensioni e lasciarlo eseguire nuovamente.
È necessario tenere conto degli errori, quindi è necessario memorizzare ogni possibile corrispondenza positiva. Dopo aver finito con tutte le dimensioni e le inclinazioni, scegli quello che è risultato con più partite.

enter image description here

Ora dovrete generale inclinazione orizzontale e l'altezzalinea di.

Ora è necessario definire la verticale lettera inclinazione. Allo stesso tempo è possibile recuperare gli spazi vuoti .
Stessa tecnica. Hai lasciato correre un corridore linea per linea verticale (si conosce il line-height)

0101010 
0101010 
0101010 
0101010 
0101010 

a partire da 0 a sinistra per il più a destra. Nessuna corrispondenza? cambiare grado. Lascia correre di nuovo.
Recupera la corsa che ha raccolto più corrispondenze. Hai l'inclinazione della lettera.
lascia scorrere sulla stessa riga di testo e raccoglie tutte le informazioni sugli spazi vuoti tra le aree scure.

enter image description here

+1

Grazie mille per il vostro supporto. Non sono abbastanza intelligente per seguire la vostra posizione t in questo momento. Farò ricerche su questo. Ma grazie ancora per la tua idea. –

Problemi correlati