Desidero riconoscere le cifre da una carta di credito. Per peggiorare le cose, l'immagine sorgente non è garantita di alta qualità. L'OCR deve essere realizzato attraverso una rete neurale, ma non dovrebbe essere l'argomento qui.Preparare un'immagine complessa per OCR
Il problema attuale è la preelaborazione dell'immagine. Poiché le carte di credito possono avere sfondi e altri elementi grafici complessi, il testo non è chiaro come con la scansione di un documento. Ho fatto esperimenti con il rilevamento dei bordi (Canny Edge, Sobel), ma non è stato un successo. Anche il calcolo della differenza tra l'immagine in scala di grigi e uno sfocato (come indicato in Remove background color in image processing for OCR) non ha comportato un risultato OCRable.
Penso che la maggior parte degli approcci fallisce perché il contrasto tra una cifra specifica e il suo sfondo non è abbastanza forte. È probabilmente necessario eseguire una segmentazione dell'immagine in blocchi e trovare la migliore soluzione di pre-elaborazione per ogni blocco?
Avete qualche suggerimento su come convertire la fonte in un'immagine binaria leggibile? Il rilevamento dei bordi è la strada da percorrere o dovrei attenermi alle soglie di colore di base?
Ecco un esempio di un approccio in scala di grigi-thresholding (dove non sono ovviamente soddisfatto dei risultati):
immagine originale:
immagine in scala di grigi:
Immagine Soglia :
Grazie per qualsiasi consiglio, Valentin
Dato che c'è così poco contrasto, vorrei provare il rilevamento dei bordi, come hai detto. –