Je cherche un exemple de code ou de nom d'API d'OCR (Optical Character Recognition) dans Java à l'aide duquel je peux extraire tout le texte présent d'un fichier image. Sans le comparer avec une image que je fais en utilisant ci-dessous le code.
public class OCRTest {
static String STR = "";
public static void main(String[] args) {
OCR l = new OCR(0.70f);
l.loadFontsDirectory(OCRTest.class, new File("fonts"));
l.loadFont(OCRTest.class, new File("fonts", "font_1"));
ImageBinaryGrey i = new ImageBinaryGrey(Capture.load(OCRTest.class, "full.png"));
STR = l.recognize(i, 1285, 654, 1343, 677, "font_1");
System.out.println(STR);
}
}
Vous pouvez essayer Tess4j ou JavaCPP Presets for Tesseract . Je pense que c'est plus facile plus tard que l'ancien. Ajoutez la dépendance à votre pom `
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>tesseract-platform</artifactId>
<version>3.04.01-1.3</version>
</dependency>
`Et c'est simple à coder
import org.bytedeco.javacpp.*;
import static org.bytedeco.javacpp.lept.*;
import static org.bytedeco.javacpp.tesseract.*;
public class BasicExample {
public static void main(String[] args) {
BytePointer outText;
TessBaseAPI api = new TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api.Init(null, "eng") != 0) {
System.err.println("Could not initialize tesseract.");
System.exit(1);
}
// Open input image with leptonica library
PIX image = pixRead(args.length > 0 ? args[0] : "/usr/src/tesseract/testing/phototest.tif");
api.SetImage(image);
// Get OCR result
outText = api.GetUTF8Text();
System.out.println("OCR output:\n" + outText.getString());
// Destroy used object and release memory
api.End();
outText.deallocate();
pixDestroy(image);
}
}
Tess4j est peu complexe car il nécessite l'installation d'un package redistribuable VC++ spécifique.
Vous pouvez essayer javaocr sur sourceforge: http://javaocr.sourceforge.net/
Il existe également un excellent exemple avec une applet qui utilise Encog: http://www.heatonresearch.com/articles/42/page1.html
Cela dit, l'OCR nécessite beaucoup de puissance, donc cela signifie que si vous recherchez une utilisation intensive, vous devez vous occuper des bibliothèques OCR écrites en C et l'intégrer à Java.
L'OCR est difficile. Assurez-vous donc de qualifier vos besoins avant de vous y aventurer.
Tesseract et opencv (avec javacv pour l'intégration par exemple) sont des choix communs. Il existe également des solutions commerciales telles que ABBYY FineReader Engine et ABBYY Cloud OCR SDK .
Le moteur OCR Open Source est disponible auprès de Google pour l'OCR. Il peut être traité à l'aide de CMD. Vous pouvez traiter le CMD à l'aide de Java pour les applications Web facilement.
Veuillez visiter https://www.youtube.com/watch?v=Mjg4yyuqr5E . Vous obtiendrez les détails étape par étape pour traiter l'OCR à l'aide de CMD.