Domanda

sono riuscito ad avere ogni carattere memorizzato in una bitmap e sono alla ricerca di un modo per determinare rapidamente quale personaggio si tratta.

Per questo sto per memorizzare ogni personaggio possibili in un array di 1 e 0, e confrontarle con una serie di bitmap ho appena preso.

ho potuto fare controlli semplici come confrontare il numero di pixel neri che ho ottenuto, confrontare le dimensioni e così via, ma tutti questi controlli sono lenti (solo una supposizione ..).

Quindi quello che sto cercando è un metodo, che va attraverso ogni pixel dal basso in alto, o in modo casuale che confronta la matrice a una serie di array e tipi unmatching fuori, fino a un solo array rimane. Ma come posso realizzare questo?

Grazie per il vostro aiuto.

Sven

È stato utile?

Soluzione

Nel OCR-mondo è abbastanza raro che si esegue in un "partita perfetta" tra un targetresource e la vostra risorsa confrontando originale.

In realtà si tratta di un enorme campo di scienza, ma ecco una bella tesi sul tema che dovrebbe dare una conoscenza di base: http://www.discover.uottawa.ca/~qchen/my_papers/ master_thesis.pdf

Si noti che gli algoritmi di questo tipo sono molto pesanti e la matematica in modo ora ottimizzato per una CPU x86 standard.

Se siete alla ricerca di una corrispondenza perfetta (voglio dire, davvero perfetto, fino al byte per byte) e si desidera implementare questo facile e veloce, io suggerirei di fare un "saltare le discordanze evidenti veloce" - un po algoritmo - qualcosa come:

1) Confronto dimensioni degli array, se diverso, non è quello che si cerca

2) Confrontare un hash-valore di ogni bitmap

3) Confronto ogni bit / byte uno per uno e, non appena si vede una differenza, non è quello che cercate

4) Win, si trova una corrispondenza:)

Questo è molto lenta, a seconda di ciò che si sta cercando di raggiungere, ma facile da implementare e che funzionerà. Così va bene per un prototipo di applicazione-simili. Come ho detto, OCR (e tutte le altre forme di elaborazione digitale del segnale) sono un enorme campo di ricerca, quindi non è qualcosa che si può invitare la gente a insegnare in un rapido forumpost, purtroppo: (

In bocca al lupo

[EDIT] Guardando il commento nel tuo OQ, dirò di andare per una tabella hash / datastructure dizionario sarebbe il più veloce per voi. Che, o un albero binario di ricerca .. Sia ONJ il generatore molto affidamento hash-chiave:)

[EDIT2 (xD)] "E 'il testo alias generato da un computer. Lo sfondo è diverso, ma il testo ha sempre lo stesso colore." Abbastanza informazioni importanti c'è: P sono la dimensione del testo / bitmap sempre lo stesso pure? Io suggerirei che o implementare il proprio algoritmo di hashing, dove si scarta i colori di sfondo predefiniti, in modo che il valore hash dipende solo dal colore del testo (e la forma di questa troppo OFC) o semplicemente riscrive tutti i pixel dello sfondo nei vostri obiettivi di essere dello stesso colore dell'originale (o semplicemente impostare lo sfondo originale a quella dei vostri obiettivi dipende ancora una volta che i dati si stanno combattendo in questa sede -? necessità ulteriori informazioni :)).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top