كثيرًا ما يستخدم التعرف البصري على العلامة (OMR) للتحقق من الاستطلاعات والاستبيانات وأوراق امتحانات الاختيار من متعدد. إنها طريقة سريعة ودقيقة لمعالجة النماذج. في هذه المقالة ، ستتعلم كيفية إنشاء قوالب ريال عماني والتحقق من أوراق الإجابة المملوءة باستخدام Java.

Java API لإنشاء قوالب OMR وتنفيذ عملية OMR

Aspose.OMR for Java هي واجهة برمجة تطبيقات للتعرف الضوئي على العلامات يمكنها تنفيذ عمليات OMR على PNG ، GIF ، JPEG ، TIFF ، إلخ. الصور. تدعم واجهة برمجة التطبيقات أيضًا إنشاء قوالب ريال عماني. يمكنك إما تنزيل API مباشرة من قسم التنزيلات أو تثبيته باستخدام تكوين Maven التالي.

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

قم بإنشاء نموذج ريال عماني وصورة صحيفة الإجابة باستخدام جافا

في هذا القسم ، ستتعلم كيفية إنشاء ملفات قالب ريال عماني وصور ورقة الإجابة باستخدام ترميز نصي بسيط. سنقوم بتخزين ترميز النص في ملف TXT واستخدامه في كود Java لإنشاء قالب OMR. فيما يلي ترميز النص الذي سنستخدمه في هذا المثال لإنشاء قالب 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________________________________

الآن بعد أن أصبح لدينا ترميز النص جاهزًا ، سنتبع الخطوات الموضحة أدناه لإنشاء نموذج OMR.

يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء قالب OMR باستخدام ترميز النص باستخدام Java.

// مسارات دليل المصدر والمخرجات
String sourceDirectory = "SourceDirectory\\OMR\\Generation\\";
String outputDirectory = "OutputDirectory\\";

// قم بإنشاء مثيل لفئة OmrEngine
OmrEngine engine = new OmrEngine();

// قم بإنشاء قالب باستخدام ترميز النص
GenerationResult res = engine.generateTemplate(sourceDirectory + "Grid.txt");

// تحقق في حالة وجود أخطاء
if (res.getErrorCode() != 0)
{
    System.out.println("ERROR CODE: " + res.getErrorCode());
}

// احفظ نتيجة التوليد: صورة و. omr template
res.save(outputDirectory, "Grid");

سيقوم الكود أعلاه بإنشاء ملف نموذج ريال عماني وصورة من ورقة الإجابة. فيما يلي صورة ورقة الإجابة التي تم إنشاؤها.

صورة ورقة الإجابة التي تم إنشاؤها بواسطة نموذج التعليمات البرمجية

صورة ورقة الإجابة التي تم إنشاؤها بواسطة نموذج التعليمات البرمجية

قم بإجراء عملية OMR على أوراق الإجابة الفقاعية باستخدام Java

بعد أن تقوم بجمع الردود على ورقة الإجابة التي تم إنشاؤها ، يمكنك التقاط صورهم ثم إجراء عمليات القراءة الضوئية عليهم. في هذا المثال ، سنقوم بإجراء عملية القراءة الضوئية على صورتين ؛ الأول مبين أدناه.

فيما يلي خطوات إجراء عملية القراءة الضوئية على الصور.

يوضح نموذج التعليمات البرمجية التالي كيفية إجراء عملية OMR على الصور باستخدام Java.

// مسارات دليل المصدر والمخرجات
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
OmrEngine engine = new OmrEngine();

// قم بتحميل ملف القالب
TemplateProcessor templateProcessor = engine.getTemplateProcessor(sourceDirectory + "Sheet.omr");
System.out.println("Template loaded.");

// حلقة من خلال الصور
for (int i = 0; i < UserImages.length; i++) {

    // التعرف على الصورة والحصول على النتيجة
    RecognitionResult result = templateProcessor.recognizeImage(sourceDirectory + UserImages[i]);

    // نتائج التصدير كسلسلة csv
    String csvResult = result.getCsv();

    // احفظ ملف CSV في مجلد الإخراج
    PrintWriter wr = new PrintWriter(new FileOutputStream(outputDirectory + UserImagesNoExt[i] + ".csv"), true);
    wr.println(csvResult);
}

ما يلي هو إخراج CSV للصورة الأولى التي تم إنشاؤها بواسطة الكود أعلاه.

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" 

احصل على رخصة مجانية

يمكنك تجربة واجهة برمجة التطبيقات بدون قيود التقييم من خلال طلب ترخيص مؤقت مجاني.

استنتاج

في هذه المقالة ، تعلمت كيفية إنشاء قوالب ريال عماني وصور ورقة الإجابة باستخدام Java. علاوة على ذلك ، لقد تعلمت كيفية إجراء عمليات القراءة الضوئية على الصور والحصول على النتيجة بتنسيق CSV. Aspose.OMR for Java هو واجهة برمجة تطبيقات قوية للمهام المتعلقة بـ OMR والتي يمكنك استكشافها بالتفصيل من خلال زيارة الوثائق الرسمية. إذا كانت لديك أي أسئلة بخصوص أي جانب من جوانب واجهة برمجة التطبيقات ، فلا تتردد في الاتصال بنا على منتدى الدعم المجاني.

أنظر أيضا