OCR: come migliorare la precisione - librerie esistenti per la rimozione non di testo 'mobili', forme, ecc al fine di evitare confusione OCR?

StackOverflow https://stackoverflow.com/questions/2448106

Domanda

Voglio rimuovere rettangoli ecc che racchiudono il testo immagine uno screenshot in, in modo che possa eseguire il riconoscimento ottico dei caratteri per ottenere testo senza errori dal screenshot.

Sfondo:

I fare questo per estrarre i dati da un'applicazione legacy per l'utilizzo con altre applicazioni. Questo è l'unico modo per arrivare a questi dati come file associati sono in un formato chiuso, proprietario binary.

Userò AutoItScript guidare l'applicazione per visualizzare i dati nella sua interfaccia utente, io screenshot questa e mangimi questo tesseract.

Ho già avuto alcuni il successo nel automatizzando l'interfaccia utente, e sono stati in grado di utilizzare per ottenere tesseract testo ASCII fuori dalla bitmap.

Ci sono diversi articoli AutoItScripr forum discutere il suo utilizzo con Tesseract / OCR, ma non specificamente per la mia domanda. http://www.autoitscript.com/forum/index.php? s = 6c32c3ece12756e635a619cdf175eff9 & showforum = 2

Che cosa devo fare

Ci sono sottili, rettangoli 1 pixel di larghezza che racchiudono strettamente un testo, se somministrate agli tesseract, li vedrà come ad esempio per una linea longitudinale del rettangolo.

Ogni pensiero su come rimuovere i rettangoli, o le migliori pratiche?

sto chiedendo se v'è un set di strumenti generica riga di comando basato sovrascrivere rettangoli, per esempio, in .png file. Potrei quindi passare il .png attraverso questa, poi passarlo al tesseract.

dettagli sul rilascio tesseract / configurazione che ho usato sono i seguenti:

Vai qui: http://code.google.com/p/ tesseract-OCR / downloads / lista - Per la genericità inglese di base impostato per ottenere Tesseract installato e funzionante e riconoscendo il testo bitmap in testo ASCII, utilizzare tesseract-2.00.eng.tar.gz (versione corrente al momento della scrittura è: "I dati di lingua inglese per Tesseract (2.00 e fino) giu 2007 989 KB 84845" )

Domande correlate Ho già guardato su Stack Overflow

In questi, la mia domanda non è completamente risolta o una soluzione commerciale è venduto. Non voglio prendere in considerazione una soluzione commerciale in questa fase.

È stato utile?

Soluzione

Non c'è probabilmente sarà un libero fuori la soluzione scaffale per questo, ma scrivere il vostro non dovrebbe essere troppo difficile in quanto è probabilmente lecito ritenere che un rettangolo non sarà mai un carattere valido in alfabeto del vostro carattere e può quindi essere rimosso in modo sicuro. Aiuta anche che tutti i tuoi confini rettangolo sono esattamente un pixel di larghezza.

Quindi cercare una linea orizzontale contigua che fa parte di un altro, linea parallela della stessa lunghezza da esattamente due linee verticali. Ripetere la ricerca fino a trovare tutti i rettangoli nell'immagine poi renderli tutto trasparente con Graphics.DrawRectangle e Pens.Transparent . Non rendono un rettangolo trasparente fino a quando hai finito di ricerca altrimenti si rischia di cancellare parti del rettangoli sovrapposti prima di aver trovato. Questo è solo un suggerimento di avviamento, non ho implementato o debug questo algoritmo.

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