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
- Erstellen Sie eine OMR-Vorlage und ein Bild des Antwortbogens mit Java
- Führen Sie eine OMR-Operation auf Bubble-Antwortblättern mit Java durch
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.
- Erstellen Sie zunächst eine Instanz der Klasse OmrEngine.
- Verarbeiten Sie das Text-Markup mit der methode OmrEngine.generateTemplate(String markupPath).
- Speichern Sie die OMR-Vorlage und das Bild mit der methode GenerationResult.save(String folder, String name).
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.
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.
- Erstellen Sie eine Instanz der Klasse OmrEngine.
- Laden Sie die Vorlagendatei mit der methode OmrEngine.getTemplateProcessor(String templatePath).
- Verarbeiten Sie das Bild mit der methode TemplateProcessor.recognizeImage(String imagePath).
- Rufen Sie das Ergebnis im CSV Format mit der methode RecognitionResult.getCsv() ab.
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.