Optical Mark Recognition (OMR) sering digunakan untuk memeriksa survei, kuesioner, dan kertas ujian pilihan ganda. Ini adalah cara pemrosesan formulir yang cepat dan akurat. Pada artikel ini, Anda akan mempelajari cara membuat template OMR dan memeriksa lembar jawaban yang telah diisi menggunakan Java.
- Java API untuk Membuat Template OMR dan Melakukan Operasi OMR
- Buat Template OMR dan Gambar Lembar Jawaban menggunakan Java
- Lakukan Operasi OMR pada Lembar Jawaban Gelembung menggunakan Java
Java API untuk Membuat Template OMR dan Melakukan Operasi OMR
Aspose.OMR for Java adalah API pengenalan tanda optik yang dapat melakukan operasi OMR pada PNG, GIF, JPEG, TIFF, dll. gambar. API juga mendukung pembuatan template OMR. Anda dapat mendownload API langsung dari bagian downloads atau menginstalnya menggunakan konfigurasi Maven berikut.
<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>
Buat Template OMR dan Gambar Lembar Jawaban menggunakan Java
Di bagian ini, Anda akan mempelajari cara membuat file template OMR dan gambar lembar jawaban menggunakan markup teks sederhana. Kami akan menyimpan markup teks dalam file TXT dan menggunakannya dalam kode Java untuk menghasilkan template OMR. Diberikan di bawah ini adalah markup teks yang akan kami gunakan dalam contoh ini untuk menghasilkan template OMR.
?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________________________________
Sekarang setelah markup teks siap, kami akan mengikuti langkah-langkah yang diberikan di bawah ini untuk menghasilkan template OMR.
- Pertama, buat instance dari kelas OmrEngine.
- Proses markup teks menggunakan metode OmrEngine.generateTemplate(String markupPath).
- Simpan template dan gambar OMR menggunakan metode GenerationResult.save(String folder, String name).
Kode contoh berikut menunjukkan cara membuat template OMR menggunakan markup teks dengan Java.
// Jalur direktori sumber dan keluaran
String sourceDirectory = "SourceDirectory\\OMR\\Generation\\";
String outputDirectory = "OutputDirectory\\";
// Buat instance kelas OmrEngine
OmrEngine engine = new OmrEngine();
// Hasilkan template menggunakan markup teks
GenerationResult res = engine.generateTemplate(sourceDirectory + "Grid.txt");
// Periksa jika terjadi kesalahan
if (res.getErrorCode() != 0)
{
System.out.println("ERROR CODE: " + res.getErrorCode());
}
// Simpan hasil pembuatan: image dan template .omr
res.save(outputDirectory, "Grid");
Kode di atas akan menghasilkan file template OMR dan gambar lembar jawaban. Berikut adalah gambar lembar jawaban yang dihasilkan.
Lakukan Operasi OMR pada Lembar Jawaban Gelembung menggunakan Java
Setelah Anda mengumpulkan jawaban pada lembar jawaban yang dibuat, Anda dapat mengambil gambarnya dan kemudian melakukan operasi OMR pada jawaban tersebut. Dalam contoh ini, kami akan melakukan operasi OMR pada dua gambar; yang pertama ditunjukkan di bawah ini.
Berikut adalah langkah-langkah untuk melakukan operasi OMR pada gambar.
- Buat instance dari kelas OmrEngine.
- Muat file template menggunakan metode OmrEngine.getTemplateProcessor(String templatePath).
- Proses gambar menggunakan metode TemplateProcessor.recognizeImage(String imagePath).
- Dapatkan hasilnya dalam format CSV menggunakan metode RecognitionResult.getCsv().
Kode contoh berikut menunjukkan cara melakukan operasi OMR pada gambar menggunakan Java.
// Jalur direktori sumber dan keluaran
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" };
// Buat instance kelas OmrEngine
OmrEngine engine = new OmrEngine();
// Muat file templat
TemplateProcessor templateProcessor = engine.getTemplateProcessor(sourceDirectory + "Sheet.omr");
System.out.println("Template loaded.");
// Ulangi gambar
for (int i = 0; i < UserImages.length; i++) {
// Kenali gambar dan terima hasilnya
RecognitionResult result = templateProcessor.recognizeImage(sourceDirectory + UserImages[i]);
// Ekspor hasil sebagai string csv
String csvResult = result.getCsv();
// Simpan csv ke folder keluaran
PrintWriter wr = new PrintWriter(new FileOutputStream(outputDirectory + UserImagesNoExt[i] + ".csv"), true);
wr.println(csvResult);
}
Berikut ini adalah keluaran CSV untuk gambar pertama yang dihasilkan oleh kode di atas.
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"
Dapatkan Lisensi Gratis
Anda dapat mencoba API tanpa batasan evaluasi dengan meminta lisensi sementara gratis.
Kesimpulan
Pada artikel ini, Anda telah mempelajari cara membuat template OMR dan gambar lembar jawaban menggunakan Java. Selanjutnya, Anda telah mempelajari cara melakukan operasi OMR pada gambar dan mendapatkan hasilnya sebagai CSV. Aspose.OMR for Java adalah API tangguh untuk tugas terkait OMR yang dapat Anda jelajahi secara mendetail dengan mengunjungi dokumentasi resmi. Jika Anda memiliki pertanyaan tentang aspek API apa pun, jangan ragu untuk menghubungi kami di forum dukungan gratis.