OMR-Blattleser in Java - OMR-Blatt PNG

Optische Markierungserkennung (OMR) ist ein Prozess zum Abrufen von Daten aus einem Dokument, das eine bestimmte Art von Markierung aufweist. Die Markierungen werden von Menschen vorgenommen und von einer OMR-Blattlesesoftware oder einem Scanner gelesen. OMR ist jedoch eine wichtige Komponente bei der Automatisierung der Erstellung und Auswertung von Antwortbögen und OMR-Vorlagen. In diesem Blogbeitrag wird daher eine OMR-Bibliothek für Java-Programmierer vorgestellt. Aspose.OMR for Java bietet Funktionen zum programmgesteuerten Erstellen eines OMR-Blattlesers in Java. Darüber hinaus werden wir auch ein Online-OMR-Tool durchgehen, lesen Sie diesen Artikel also gründlich durch.

In diesem Blogbeitrag werden wir die folgenden Abschnitte behandeln:

  1. Aspose.OMR for Java - Installation der OMR-Bibliothek
  2. OMR Sheet Reader in Java - Codebeispiel
  3. Online OMR-Tool

Aspose.OMR for Java - Installation der OMR-Bibliothek

Es gibt eine ausführliche Anleitung zur Installation. Sie können die JAR-Datei herunterladen oder die folgenden Maven-Konfigurationen verwenden:

 <repositories>
     <repository>
         <id>AsposeJavaAPI</id>
         <name>Aspose Java API</name>
         <url>https://releases.aspose.com/java/repo/</url>
     </repository>
</repositories>
 <dependencies>
    <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-omr</artifactId>
        <version>23.12</version>
    </dependency>
</dependencies>
OMR-Bibliotheksinstallation

OMR-Bogenleser in Java - Codebeispiel

Wir können jetzt mit der Entwicklung einer OMR-Bogenlesesoftware beginnen, indem wir die unten aufgeführten Schritte befolgen:

  • Erstellen Sie ein Objekt der Klasse OmrEngine.
  • Rufen Sie die Methode getTemplateProcessor auf, um den Template-Prozessor abzurufen.
  • Legen Sie einen benutzerdefinierten Schwellenwert für die Neuberechnung fest, dessen Bereich zwischen 0 und 100 liegt. Je niedriger der Wert, desto weniger schwarze Pixel sind erforderlich, damit eine Blase als gefüllt gilt und umgekehrt.
  • Durchlaufen Sie die Bilder in einer Schleife.
  • Erkennen Sie das Bild, indem Sie die Methode „recognizeImage“ aufrufen.
  • Rufen Sie die Methode getCsv auf, um die CSV-Exportzeichenfolge abzurufen und die CSV im Ausgabeordner zu speichern.
  • Rufen Sie die Methode recalculate auf, um die Erkennungsergebnisse mit einem benutzerdefinierten Schwellenwert neu zu berechnen.
  • Neu berechnete Ergebnisse in einer CSV-Datei speichern.

Der folgende Codeausschnitt zeigt, wie man in Java programmgesteuert einen OMR-Bogenleser entwickelt:

package com.example;
import com.aspose.omr.OmrEngine;
import com.aspose.omr.RecognitionResult;
import com.aspose.omr.TemplateProcessor;
import java.io.FileOutputStream;
import java.io.PrintWriter;
// OMR-Blattleser in Java - OMR-Blatt PNG
public class Main {
    public static void main(String[] args) throws Exception {
	// Definieren Sie Arbeitsverzeichnisse.
	String[] UserImages = new String[] { "/Sheet.png" };
	String[] UserImagesNoExt = new String[] { "/files/" };
	String templatePath = "/Sheet.omr";
	// Erstellen Sie ein Objekt der Klasse OmrEngine. 
	OmrEngine engine = new OmrEngine();
	// Rufen Sie die Methode getTemplateProcessor auf, um den Vorlagenprozessor abzurufen. 
	TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
	// Legen Sie einen benutzerdefinierten Schwellenwert für die Neuberechnung fest, dessen Bereich zwischen 0 und 100 liegt. Je niedriger der Wert, desto weniger schwarze Pixel sind erforderlich, damit eine Blase als gefüllt gilt und umgekehrt.
	int CustomThreshold = 0;
	// Durchlaufen Sie die Bilder in einer Schleife.
	for (int i = 0; i < UserImages.length; i++)
	{
		String image = UserImages[i];
		String imagePath = image;
		// Erkennen Sie das Bild, indem Sie die Methode „recognizeImage“ aufrufen.
		RecognitionResult result = templateProcessor.recognizeImage(imagePath);
		// Rufen Sie die Methode getCsv auf, um die CSV-Exportzeichenfolge abzurufen und die CSV im Ausgabeordner zu speichern.
		String stringRes = result.getCsv();
		String outputName = UserImagesNoExt[i] + ".csv";
		PrintWriter wr = new PrintWriter(new FileOutputStream(outputName), true);
		wr.println(stringRes);
		// Rufen Sie die Neuberechnungsmethode auf, um die Erkennungsergebnisse mit einem benutzerdefinierten Schwellenwert neu zu berechnen.
		templateProcessor.recalculate(result, CustomThreshold);
		stringRes = result.getCsv();
		// Neu berechnete Ergebnisse in einer CSV-Datei speichern.
		outputName = UserImagesNoExt[i] + "_recalculated.csv";
		wr = new PrintWriter(new FileOutputStream(outputName), true);
		wr.println(stringRes);
	}
    }
}

Sie können die Ausgabe im Bild unten sehen:

OMR-Blattlesersoftware

Online-OMR-Tool

Neben einer OMR-Bibliothek für Java unterstützt Aspose.OMR einen Online-OMR-Blattleser. Dieses kostenlose Tool ist also sehr sicher und scannt Antwortbögen effizient. Darüber hinaus ist weder die Erstellung eines Kontos noch ein Abonnement erforderlich. Sie können es also einfach durch Ziehen und Ablegen von Dateien verwenden.

Online-OMR-Tool

OMR Sheet PNG - Holen Sie sich eine kostenlose Lizenz

Jetzt können Sie eine kostenlose temporäre Lizenz nutzen, um diese OMR-Bibliothek über die Evaluierungsbeschränkungen hinaus auszuprobieren.

Abschluss

Damit sind wir am Ende dieses Blogbeitrags angelangt. Wir haben uns angesehen, was OMR ist und wie die Implementierung eines OMR-Bogenlesers in Java funktioniert. Ebenso können Sie diese OMR-Bibliothek nutzen, um Zeit und Arbeitskraft zu sparen, da Sie Ihre eigene OMR-Bogenlesersoftware entwickeln können. Darüber hinaus können Sie das GitHub-Repo besuchen, um mit der Entwicklung zu beginnen. Darüber hinaus können Sie die Dokumentation und die API-Referenzen besuchen, um mehr über Aspose.OMR for Java zu erfahren.

Hilfe ist verfügbar

Sie können Ihre Fragen oder Anfragen in unserem Forum teilen.

Häufig gestellte Fragen – FAQs

Können wir das OMR-Blatt online prüfen?

Mit diesem Online OMR-Bogenreader können Sie OMR-Antwortbögen prüfen.

Wie lese ich ein OMR-Blatt in Java?

Aspose.OMR for Java ist eine OMR-Bibliothek, die umfangreiche Funktionen bietet, um OMR-Antwortbögen programmgesteuert zu lesen. Unter diesem Link erfahren Sie, wie das geht.

Siehe auch