Ci sono degli OCR in grado di leggere, con buona precisione, i caratteri in una immagine.
Dall'opensource Tesseract, a Abbyy FineReader SDK per C/C++ (ma costa, ed è di origine russa), con wrapper Java. Visto che non è lavorativo, puoi cominciare con Tesseract. Questo
articolo spiega come installare Tesseract.