Optical Mark Recognition (OMR) wird häufig verwendet, um Umfragen, Fragebögen und Multiple-Choice-Prüfungsunterlagen zu überprüfen. Es ist eine schnelle und genaue Methode zur Verarbeitung von Formularen. In diesem Artikel erfahren Sie, wie Sie OMR-Vorlagen erstellen und ausgefüllte Antwortbögen mit Java überprüfen.

Java API zum Generieren von OMR-Vorlagen und Durchführen von OMR-Vorgängen

Aspose.OMR for Java ist eine optische Markierungserkennungs-API, die OMR-Operationen auf PNG, GIF, JPEG, TIFF, usw. Bilder. Die API unterstützt auch das Generieren von OMR-Vorlagen. Sie können die API entweder direkt aus dem Abschnitt downloads herunterladen oder sie mit der folgenden Maven-Konfiguration installieren.

<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>http://repository.aspose.com/repo/</url>
    </repository>
</repositories>
<dependency>
	<groupId>com.aspose</groupId>
	<artifactId>aspose-omr</artifactId>
	<version>19.12</version>
	<classifier>jdk6</classifier>
</dependency>

<dependency>
	<groupId>com.aspose</groupId>
	<artifactId>aspose-omr</artifactId>
	<version>19.12</version>
	<classifier>javadoc</classifier>
</dependency>

Erstellen Sie eine OMR-Vorlage und ein Bild des Antwortbogens mit Java

In diesem Abschnitt erfahren Sie, wie Sie OMR-Vorlagendateien und Antwortblattbilder mit einfachen Textmarkierungen generieren. Wir speichern das Text-Markup in einer TXT Datei und verwenden es im Java-Code, um die OMR-Vorlage zu generieren. Unten ist das Text-Markup, das wir in diesem Beispiel verwenden werden, um die OMR-Vorlage zu generieren.

?text=Name__________________________________ Date____________

?grid=ID
	sections_count=8
#What is Aspose.OMR main function?
	() OCR () Capture human-marked data
	() There is no main function () Enhance images
#Can Aspose.OMR process not only scans, but also photos?
	() Yes, indeed! () No
#Aspose.OMR is available on any platform, because it is:
	() Cross-platform code () Cloud service
#Aspose.OMR works with any kind of OMR forms: tests, exams, questionnaires, surveys, etc.
	() Yes, indeed! () No
#Excellent recognition results can be achieved only for filled bubbles at least for:
	() 40% () 60% () 75% () 98%
#Do you have to mark up every question on the page?
	(Yes) Yes, that will help a lot! (No) No
#Rate your preference from 0 to 9 with "0" being preference towards performance
and "9" being preference towards flexibility.
	(0) (1) (2) (3) (4) (5) (6) (7) (8) (9)
#I found aspose omr to be a useful tool. (5 - strongly agree, 1 - strongly disagree)
	(5) (4) (3) (2) (1)

?text= Answer sheet section
?answer_sheet=MainQuestions
	elements_count=10
	columns_count=5

?text=Sign________________________________

Nachdem wir nun das Text-Markup fertig haben, werden wir die unten angegebenen Schritte ausführen, um die OMR-Vorlage zu generieren.

Der folgende Beispielcode zeigt, wie eine OMR-Vorlage mithilfe von Text-Markup mit Java generiert wird.

// Quell und Ausgabeverzeichnispfade
String sourceDirectory = "SourceDirectory\\OMR\\Generation\\";
String outputDirectory = "OutputDirectory\\";

// Erstellen Sie eine Instanz der OmrEngine Klasse
OmrEngine engine = new OmrEngine();

// Erstellen Sie eine Vorlage mit dem Text-Markup
GenerationResult res = engine.generateTemplate(sourceDirectory + "Grid.txt");

// Bei Fehlern prüfen
if (res.getErrorCode() != 0)
{
    System.out.println("ERROR CODE: " + res.getErrorCode());
}

// Speichern Sie das Generierungsergebnis: Bild und .omr-Vorlage
res.save(outputDirectory, "Grid");

Der obige Code generiert eine OMR-Vorlagendatei und ein Bild des Antwortbogens. Das Folgende ist das Bild des generierten Antwortbogens.

Bild des vom Beispielcode generierten Antwortbogens

Bild des vom Beispielcode generierten Antwortbogens

Führen Sie eine OMR-Operation auf Bubble-Antwortblättern mit Java durch

Nachdem Sie die Antworten auf dem generierten Antwortbogen gesammelt haben, können Sie ihre Bilder erfassen und dann OMR-Operationen an ihnen durchführen. In diesem Beispiel führen wir die OMR-Operation an zwei Bildern durch; die erste ist unten gezeigt.

Im Folgenden sind die Schritte zur Durchführung des OME-Vorgangs an Bildern aufgeführt.

Der folgende Beispielcode zeigt, wie Sie mit Java eine OMR-Operation für Bilder ausführen.

// Quell und Ausgabeverzeichnispfade
String sourceDirectory = "SourceDirectory\\OMR\\";
String outputDirectory = "OutputDirectory\\";

String TemplateName = "Sheet.omr";
String[] UserImages = new String[] { "Sheet1.jpg", "Sheet2.jpg" };
String[] UserImagesNoExt = new String[] { "Sheet1", "Sheet2" };

// Erstellen Sie eine Instanz der OmrEngine Klasse
OmrEngine engine = new OmrEngine();

// Laden Sie die Vorlagendatei
TemplateProcessor templateProcessor = engine.getTemplateProcessor(sourceDirectory + "Sheet.omr");
System.out.println("Template loaded.");

// Schleife durch die Bilder
for (int i = 0; i < UserImages.length; i++) {

    // Bild erkennen und Ergebnis erhalten
    RecognitionResult result = templateProcessor.recognizeImage(sourceDirectory + UserImages[i]);

    // Ergebnisse als CSV-String exportieren
    String csvResult = result.getCsv();

    // CSV im Ausgabeordner speichern
    PrintWriter wr = new PrintWriter(new FileOutputStream(outputDirectory + UserImagesNoExt[i] + ".csv"), true);
    wr.println(csvResult);
}

Das Folgende ist die CSV-Ausgabe für das erste Bild, das durch den obigen Code generiert wurde.

Element Name,Value,
MainQuestions1,"A"
MainQuestions2,"B"
MainQuestions3,"D"
MainQuestions4,"C"
MainQuestions5,"C"
MainQuestions6,"A"
MainQuestions7,"B"
MainQuestions8,"B"
MainQuestions9,"C"
MainQuestions10,"B"
MainQuestions11,"D"
MainQuestions12,"A"
MainQuestions13,"C"
MainQuestions14,"B"
MainQuestions15,"D"
MainQuestions16,"A"
MainQuestions17,"C"
MainQuestions18,"B"
MainQuestions19,"A"
MainQuestions20,"A"
MainQuestions21,"A"
MainQuestions22,"C"
MainQuestions23,"D"
MainQuestions24,"B"
MainQuestions25,"A"
MainQuestions26,"C"
MainQuestions27,"B"
MainQuestions28,"D"
MainQuestions29,"C"
MainQuestions30,"A"
MainQuestions31,"C"
MainQuestions32,"B"
MainQuestions33,"D"
MainQuestions34,"A"
MainQuestions35,"C"
MainQuestions36,"B"
MainQuestions37,"D"
MainQuestions38,"C"
MainQuestions39,"B"
MainQuestions40,"A"
MainQuestions41,"D"
MainQuestions42,"C"
MainQuestions43,"B"
MainQuestions44,"A"
MainQuestions45,"C"
MainQuestions46,"B"
MainQuestions47,"D"
MainQuestions48,"C"
MainQuestions49,"A"
MainQuestions50,"C"
MainQuestions51,"B"
MainQuestions52,"D"
MainQuestions53,"B"
MainQuestions54,"C"
MainQuestions55,"B"
MainQuestions56,"A"
MainQuestions57,"C"
MainQuestions58,"B"
MainQuestions59,"D"
MainQuestions60,"B"
MainQuestions61,"A"
MainQuestions62,"C"
MainQuestions63,"B"
MainQuestions64,"D"
MainQuestions65,"C"
MainQuestions66,"B"
MainQuestions67,"A"
MainQuestions68,"C"
MainQuestions69,"B"
MainQuestions70,"D"
MainQuestions71,"C"
MainQuestions72,"B"
MainQuestions73,"B"
MainQuestions74,"A"
MainQuestions75,"C"
MainQuestions76,"B"
MainQuestions77,"D"
MainQuestions78,"D"
MainQuestions79,"C"
MainQuestions80,"B"
ID,"27860000" 

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit Java OMR-Vorlagen und Antwortbogenbilder generieren. Außerdem haben Sie gelernt, wie Sie OMR-Operationen an Bildern durchführen und das Ergebnis als CSV erhalten. Aspose.OMR for Java ist eine robuste API für Ihre OMR-bezogenen Aufgaben, die Sie im Detail erkunden können, indem Sie die offizielle Dokumentation besuchen. Wenn Sie Fragen zu einem Aspekt der API haben, können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.

Siehe auch