Auf Thema antworten

Ich muss das Thema leider nochmal hoch holen.


Ich hatte in den letzten Monaten leider wenig zeit, aber nun wollte ich das Projekt nochmal aufgreifen.


Also ich habs bis dato noch nicht hinbekommen mit diesem JNI Wrapper tesjeract ein tif geschweige denn ein BufferedImage auszulesen.


Was ich bis jetzt gemacht habe:


Ich habe die beiden Pakete herunter geladen.

Downloads - tesjeract - JNI wrapper for Tessaract OCR - Google Project Hosting


Hab die tessdll.dll und die tesjeract.dll ins System32 Verzeichnis kopiert.


Mein Code sieht so aus:


[code=Java]

package tesseract;


import java.io.File;

import java.io.FileInputStream;

import java.nio.MappedByteBuffer;

import java.nio.channels.FileChannel.MapMode;



public class Main {



    public static void main(String[] args) throws Exception {




        if (System.getProperty("os.name").toLowerCase().startsWith("windows"))

            System.loadLibrary("tessdll");


            System.loadLibrary("tesjeract");


        if (args.length != 1) {

            System.err.println("Should give TIFF file as first argument");

            System.exit(1);

        }


        File tiff = new File(args[0]);


        if (!tiff.exists()) {

            System.err.println("No such file " + args[0]);

            System.exit(1);

        }


        MappedByteBuffer buf = new FileInputStream(tiff).getChannel().map(MapMode.READ_ONLY, 0, tiff.length());

        Tesjeract tess = new Tesjeract("eng");

        EANYCodeChar[] words = tess.recognizeAllWords(buf);


        for (EANYCodeChar c:words) {

            while (c.blanks-- > 0)

                System.out.print(" ");


            System.out.print((char) c.char_code);

        }

    }


}

[/code]


Und es kommt folgende Fehlermeldung:

run:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\tesjeract.dll: Die angegebene Prozedur wurde nicht gefunden

        at java.lang.ClassLoader$NativeLibrary.load(Native Method)

        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)

        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)

        at java.lang.Runtime.loadLibrary0(Runtime.java:823)

        at java.lang.System.loadLibrary(System.java:1028)

        at tesseract.Main.main(Main.java:20)

Java Result: 1

ERSTELLEN ERFOLGREICH (Gesamtzeit: 0 Minuten 0 Sekunden)


Leider kann ich damit nix anfangen, da ich wie gesagt zwar erfahrung mit Java ansich habe, aber mit JNI bzw. arbeiten mit externen Programm ziemlich unbeleckt bin. Ich hab auch schon sehr viel drüber gelsen, aber ich komme da einfach nicht weiter.


Bin für jeden Post dankbar, was ich noch machen könnte.



Oben