Optik İşaret Tanıma (OMR), anketleri, anketleri ve çoktan seçmeli sınav kağıtlarını kontrol etmek için sıklıkla kullanılır. Formları işlemenin hızlı ve doğru bir yoludur. Bu makalede, Java kullanarak OMR şablonları oluşturmayı ve doldurulmuş cevap kağıtlarını kontrol etmeyi öğreneceksiniz.

OMR Şablonları Oluşturmak ve OMR İşlemini Gerçekleştirmek için Java API

Aspose.OMR for Java, PNG, GIF, JPEG, TIFF üzerinde OMR işlemleri gerçekleştirebilen bir optik işaret tanıma API’sidir. vb görüntüler. API ayrıca OMR şablonları oluşturmayı da destekler. API’yi doğrudan indirilenler bölümünden indirebilir veya aşağıdaki Maven yapılandırmasını kullanarak yükleyebilirsiniz.

<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>

Java kullanarak OMR Şablonu ve Cevap Sayfası Görüntüsü oluşturun

Bu bölümde, basit metin işaretlemeyi kullanarak OMR şablon dosyalarını ve cevap kağıdı resimlerini nasıl oluşturacağınızı öğreneceksiniz. Metin işaretlemesini bir TXT dosyasında saklayacağız ve OMR şablonunu oluşturmak için Java kodunda kullanacağız. Aşağıda verilen, bu örnekte OMR şablonunu oluşturmak için kullanacağımız metin işaretlemesidir.

?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________________________________

Artık metin işaretlemesini hazırladığımıza göre, OMR şablonunu oluşturmak için aşağıda verilen adımları izleyeceğiz.

Aşağıdaki örnek kod, Java ile metin işaretleme kullanılarak bir OMR şablonunun nasıl oluşturulacağını gösterir.

// Kaynak ve çıkış dizini yolları
String sourceDirectory = "SourceDirectory\\OMR\\Generation\\";
String outputDirectory = "OutputDirectory\\";

// OmrEngine sınıfının bir örneğini oluşturun
OmrEngine engine = new OmrEngine();

// Metin işaretlemeyi kullanarak şablon oluştur
GenerationResult res = engine.generateTemplate(sourceDirectory + "Grid.txt");

// Hata durumunda kontrol edin
if (res.getErrorCode() != 0)
{
    System.out.println("ERROR CODE: " + res.getErrorCode());
}

// Oluşturma sonucunu kaydedin: görüntü ve .omr şablonu
res.save(outputDirectory, "Grid");

Yukarıdaki kod, bir OMR şablon dosyası ve cevap kağıdının bir görüntüsünü oluşturacaktır. Oluşturulan cevap kağıdının görüntüsü aşağıdadır.

Örnek kod tarafından oluşturulan cevap kağıdının görüntüsü

Örnek kod tarafından oluşturulan cevap kağıdının görüntüsü

Java kullanarak Kabarcık Cevap Sayfalarında OMR İşlemi gerçekleştirin

Cevapları oluşturulan cevap kağıdında topladıktan sonra görüntülerini alabilir ve üzerlerinde OMR işlemleri yapabilirsiniz. Bu örnekte OMR işlemini iki resim üzerinde gerçekleştireceğiz; ilki aşağıda gösterilmiştir.

Aşağıda, görüntüler üzerinde OMR işlemini gerçekleştirmek için izlenecek adımlar yer almaktadır.

Aşağıdaki örnek kod, Java kullanılarak görüntülerde OMR işleminin nasıl gerçekleştirileceğini gösterir.

// Kaynak ve çıkış dizini yolları
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" };

// OmrEngine sınıfının bir örneğini oluşturun
OmrEngine engine = new OmrEngine();

// Şablon dosyasını yükleyin
TemplateProcessor templateProcessor = engine.getTemplateProcessor(sourceDirectory + "Sheet.omr");
System.out.println("Template loaded.");

// Görüntüler arasında döngü
for (int i = 0; i < UserImages.length; i++) {

    // Görüntüyü tanı ve sonucu al
    RecognitionResult result = templateProcessor.recognizeImage(sourceDirectory + UserImages[i]);

    // Sonuçları csv dizesi olarak dışa aktar
    String csvResult = result.getCsv();

    // CSV'yi çıkış klasörüne kaydedin
    PrintWriter wr = new PrintWriter(new FileOutputStream(outputDirectory + UserImagesNoExt[i] + ".csv"), true);
    wr.println(csvResult);
}

Aşağıdaki, yukarıdaki kod tarafından oluşturulan ilk görüntünün CSV çıktısıdır.

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" 

Ücretsiz Lisans Alın

Ücretsiz bir geçici lisans talep ederek API’yi değerlendirme sınırlamaları olmaksızın deneyebilirsiniz.

Çözüm

Bu makalede, Java kullanarak OMR şablonlarını ve cevap sayfası görüntülerini nasıl oluşturacağınızı öğrendiniz. Ayrıca görüntüler üzerinde OMR işlemleri yapmayı ve sonucu CSV olarak almayı öğrendiniz. Aspose.OMR for Java, OMR ile ilgili görevleriniz için resmi belgeleri ziyaret ederek ayrıntılı olarak keşfedebileceğiniz sağlam bir API’dir. API’nin herhangi bir yönüyle ilgili herhangi bir sorunuz varsa lütfen ücretsiz destek forumumuzdan bize ulaşmaktan çekinmeyin.

Ayrıca bakınız