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

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.

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.

Gambar lembar jawaban yang dihasilkan oleh kode sampel

Gambar lembar jawaban yang dihasilkan oleh kode sampel

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.

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.

Lihat juga