4
votes

I am trying to use Tess4J in my project to extract text from an image. I am getting the following error when I try run the OCR: Exception in thread "main" java.lang.Error: Invalid memory access

    try {
        File imageFile = new File("example4.jpg");
        Tesseract instance = Tesseract.getInstance(); // JNA Interface Mapping
        //Tesseract1 instance = new Tesseract1();
        String result = instance.doOCR(imageFile);
        System.out.println(result);
    } catch (Exception e) {
        e.printStackTrace();
    }   
3
Bug in the native code. I suggest you report it to Tess4J. - Robin Green
It happen to any image or just this one? - nguyenq

3 Answers

12
votes

you can set the data path i am getting same problem when i set the data path that problem is solved
try try this

instance1.setDatapath("D://Hotel_project//Tess4J-1.2-src//Tess4J//tessdata");

2
votes

You must define the datapath of the traineddata to use. If you don't specify the language it will assume it is eng.

For instance, it your project path is PROJECT and your trained data is at PROJECT/data/tessdata/eng.traineddata

tess.setDatapath("data");
tess.setLanguage("eng");

Remember that "tessdata" shoundn't be in the path you specify

0
votes

if you are running on 32 bit JVM

Please try with Tesseract1 instance = new Tesseract1();

instead of using Tesseract instance = Tesseract.getInstance();