Text-OCR Bild-mit-Java erkennen

Mit der optischen Zeichenerkennung (OCR) können Sie einen Text aus dem Bild in ein bearbeitbares Format konvertieren. Bilder wie JPG, PNG, TIFF, BMP, GIF usw. werden überall im Internet verwendet und Sie müssen dies möglicherweise tun Text aus einem Online Bild erkennen. Sie können einfach den URL-Link zu diesem Bild verwenden, um die OCR darauf durchzuführen, anstatt die Datei zu speichern oder herunterzuladen. Die folgenden Überschriften erläutern die Details weiter:

Java-OCR-API – Installation

Die API Aspose.OCR for Java kann verwendet werden, um optische Zeichenerkennungsvorgänge für Bilder durchzuführen. Es kann Text erkennen und das Bild in bearbeitbaren Text umwandeln. Bitte laden Sie die JAR Datei der API aus dem Abschnitt Downloads herunter oder geben Sie die folgenden Maven konfigurationen in der pom.xml Datei Ihres Projekts an:

Repository:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>

Abhängigkeit:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-ocr</artifactId>
    <version>20.5</version>
</dependency>

Erkennen Sie Text durch Ausführen von OCR auf Bild von URL mit Java

Sie können die optische Zeichenerkennung für ein Bild von einer URL mit den folgenden Schritten durchführen:

  1. Erstellen Sie eine API-Instanz mit der Klasse AsposeOCR.
  2. Bild-URI angeben.
  3. Legen Sie Erkennungsoptionen mit der Klasse RecognitionSettings fest.
  4. Ergebnisobjekt abrufen.
  5. Ergebnis drucken.

Der folgende Code erklärt, wie Text erkannt wird, indem OCR auf Bildern von URLs programmgesteuert mit Java durchgeführt wird:

//API-Instanz erstellen
AsposeOCR api = new AsposeOCR();

// Bild-URI angeben
String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

// Erkennungsoptionen festlegen
RecognitionSettings settings = new RecognitionSettings();
settings.setAutoSkew(false);
ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);


// Ergebnisobjekt abrufen
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// Ergebnis drucken
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

Erkennen Sie Text aus schiefen oder geneigten Bildern mit OCR unter Verwendung von Java

Manchmal kann ein Bild aus irgendeinem Grund geneigt oder verzerrt sein. Beispielsweise kann ein von einer Kamera oder einem Scanner erstelltes Bild leicht verzerrt sein, dann können Sie den Neigungswinkel des Eingabebilds ermitteln. Sie können die Genauigkeit der Texterkennung verbessern, indem Sie den Neigungswinkel kennen und korrigieren. Sie müssen die folgenden Schritte ausführen:

  • Erstellen Sie eine API-Instanz mit dem Objekt AsposeOCR.
  • Erkennungsoptionen festlegen.
  • Skew-Winkel berechnen und einstellen.
  • Holen Sie sich das Ergebnis mit dem Objekt RecognitionResult und drucken Sie es aus.

Der folgende Code zeigt, wie Text aus einem schiefen Bild mit OCR programmgesteuert in Java erkannt wird:

//API-Instanz erstellen
AsposeOCR api = new AsposeOCR();

String uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";

BufferedImage image = null;
try{
java.net.URL url =new java.net.URL(uri);

// lesen Sie die URL
image = ImageIO.read(url);
}catch(IOException e){
            e.printStackTrace();
        }
// Erkennungsoptionen festlegen
RecognitionSettings settings = new RecognitionSettings();
double angle = 0;

// Schrägwinkel erhalten
try {
	angle = api.CalcSkewImage(image);
	System.out.println("Skew text is:" + angle + " degrees.");
} catch (IOException e1) {
	e1.printStackTrace();
}
settings.setSkew(angle);

ArrayList<Rectangle> rectangles = new ArrayList<Rectangle>();
rectangles.add(new Rectangle(90,186,775,95));
settings.setRecognitionAreas(rectangles);

// Ergebnisobjekt erhalten
RecognitionResult result = null;
try {
	result = api.RecognizePageFromUri(uri, settings);
} catch (IOException e) {
	e.printStackTrace();
}

// Ergebnis drucken
System.out.println("Result: \n" + result.recognitionText+"\n\n");
System.out.println("RecognitionAreasText: \n");
for(String text: result.recognitionAreasText) {
	System.out.println(text);
}

Erhalten Sie eine kostenlose API Lizenz

Sie können eine kostenlose temporäre Lizenz anfordern, um die API in vollem Umfang zu evaluieren.

Fazit

Abschließend haben Sie gelernt, wie Sie Text erkennen, indem Sie OCR-Operationen an einem Bild von einer beliebigen URL-Adresse ausführen. Darüber hinaus haben Sie untersucht, wie Sie den Neigungswinkel für das Bild korrigieren können, um die Genauigkeit und Effizienz der API zu verbessern. Sie können sich mehrere andere Funktionen der API ansehen, indem Sie die Dokumentation besuchen, oder Sie können uns bei Fragen gerne über das kostenlose Support-Forum kontaktieren.

Siehe auch