2013-06-04 8 views
6

Ho un'applicazione Android che esegue l'OCR sui documenti. Voglio poter fare un test sull'immagine prima di inviarlo al server. quindi la mia domanda è se c'è qualche strumento/codice disponibile per misurare l'immagine prima di inviarlo al server. Voglio essere in grado di sapere se l'immagine non è a fuoco (non abbastanza nitida), per salvare il tempo di elaborazione dal lato server e non per inviarlo. Grazie DavidControllare la qualità dell'immagine prima dell'OCR

+0

I telefoni sono veloci in questi giorni .. perché non eseguire un OCR sul client e inviare i * risultati * al server per la convalida? – bdares

+0

https://github.com/rmtheis/tess-two/blob/master/eyes-two/jni/imageutils/blur.cpp – rmtheis

risposta

2

David, questa è una buona domanda. Per favore condividi le tue scoperte per tutti noi mentre raccogli più feedback.

Ho utilizzato e ho visto diverse tecniche per questo importante passaggio nell'elaborazione. La realtà è che è MOLTO più facile avere l'utente a scattare una buona foto, che a rilevare o correggere un'immagine del letto, che in molti casi non è nemmeno possibile. Quindi il rilevamento è bello da avere, ma non dovrebbe essere la prima azione. Ci sono così tante opzioni che possono essere attivate prima del controllo dell'immagine, e ne elencherò alcune sotto.

tecniche (tecnici e non tecnici) che ha lavorato per me in passato, o hanno lavorato per le persone con cui ho lavorato o sentito parlare di: rilevazione

  • Shake. Utilizzando l'accelerazione del dispositivo per controllare l'agitazione al momento di scattare la foto. Buon approccio, ma funziona principalmente in condizioni di illuminazione intensa. In un ambiente buio, anche con scuotimenti minimi, l'immagine può essere facilmente macchiata. Questo metodo deve essere usato in combinazione con altri metodi.

  • Binarizzazione sul dispositivo. Non solo ti permette di comprimere e preparare l'immagine per una trasmissione efficiente, ma ti permette di vedere chiaramente la qualità del testo. Guardare l'immagine a colori con sfondi scuri non è così ovvio in merito alla nitidezza dei singoli caratteri come se guardassero i bordi in bianco e nero di quei personaggi.

  • Schermata di anteprima. Permetti all'utente di vedere l'immagine che hanno scattato e stanno per inviare. Spesso visualizzo app che consentono di visualizzare l'anteprima dell'immagine, ma sono disabilitate quando tocchi due volte su di esso. Qualsiasi testo (anche se è cattivo) apparirà bene su un piccolo schermo, perché non è possibile visualizzare il testo.

  • Io lo chiamo 'anteprima forzata'. Dopo aver scattato l'immagine, e preferibilmente dopo la binarizzazione, zoomare automaticamente 10 volte e chiedere all'utente di confermare se vedono il testo nitido o meno. Sembra invasivo, quindi un buon design è importante qui, ma questo metodo è affidabile perché può essere fatto come un passaggio obbligato.

  • Semplici istruzioni guidate su ... Come scattare buone foto! Alcune app mostrano ti una volta a firstrun. Alcune app ti danno la possibilità di disabilitare. Nelle mie app, ho visto un notevole aumento della qualità dopo aver fornito queste istruzioni dopo l'aggiornamento della mia app FotoNote su iOS.

Problemi correlati