Ciao a tutti,
sto scrivendo un'applicazione in java (java 7 + eclipse + Tomcat) che acquisisce un documento (di tipo testo) dallo scanner e, senza salvarlo sul disco, legge il contenuto e lo memorizza in un'area di testo (TextArea).
La prima parte sono riuscita a risolverla grazie a "Morena 6" un framework di acquisizione immagini disponibile al sito http://www.gnome.sk/Twain/jtp.html (a pagamento).
Cliccando su un bottone lo scanner viene avviato e ottengo un BufferedImage, che poi passo a Tesseract per eseguire l'ocr. Il mio problema è che Tesseract mi restituisce un ocr che sembra arabo!!! e non italiano! cosa sbaglio? cercando sul web ho visto che è uno dei migliori ocr ma perchè a me non funziona bene? conoscete qualcosa di alternativo che funziona bene? grazie!
Riporto il codice della mia classe:
codice:
public void acquireFromScanner() throws TwainException, IOException
{
try {
TwainSource source=TwainManager.getDefaultSource();
System.err.println("Selected source is "+source);
if (source!=null)
{
source.setAutoScan(true);
source.setVisible(false); // Lesson 2
source.setColorMode(); // Lesson 2
source.setResolution(100); // Lesson 2
System.err.println("Image resolution is " +source.getResolution()); // Lesson 2
System.out.println("Starting scan ... ");
MorenaImage morenaImage=new MorenaImage(source);
System.err.println("Size of acquired image is "
+morenaImage.getWidth()+" x "
+morenaImage.getHeight()+" x "
+morenaImage.getPixelSize());
Image image=Toolkit.getDefaultToolkit().createImage(morenaImage);
BufferedImage bimg=new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
bimg.createGraphics().drawImage(image, 0, 0, null);
Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
// Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
instance.setLanguage("ita");
try {
ImageIO.scanForPlugins();
String result = instance.doOCR(bimg);
System.out.println(result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
Morena.close();
} catch (MorenaException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}