قم بإجراء OMR واستخراج البيانات باستخدام Java

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

سيتم تناول الموضوعات التالية في هذه المقالة:

  1. Java OMR API لاستخراج البيانات من الصورة
  2. استخراج البيانات من صورة
  3. أداء OMR واستخراج البيانات من صور متعددة
  4. استخراج بيانات OMR مع حد
  5. استخراج بيانات OMR مع إعادة الحساب

Java OMR API لاستخراج البيانات من الصورة

لإجراء عمليات OMR واستخراج البيانات من تنسيقات الصور المدعومة ، سنستخدم Aspose.OMR for Java API. يسمح بتصميم وإنشاء والتعرف على أوراق الإجابة والاختبارات وأوراق MCQ والاختبارات ونماذج التعليقات والاستطلاعات وأوراق الاقتراع.

تتولى فئة OmrEngine الخاصة بواجهة برمجة التطبيقات إنشاء القالب ومعالجة الصور. تقوم طريقة getTemplateProcessor (String templatePath) لهذه الفئة بإنشاء مثيل TemplateProcessor لمعالجة القوالب والصور. يمكننا التعرف على صورة باستخدام طريقة recognImage (String imagePath). تقوم بإرجاع جميع عناصر OMR كمثيل فئة RecognitionResult. تقوم طريقة getCsv () لهذه الفئة بإنشاء سلسلة CSV بنتائج التعرف. تعمل طريقة إعادة الحساب (نتيجة RecognitionResult ، حد التعرف الأولي) على تحديث نتيجة التعرف باستخدام معلمات مضبوطة بدقة.

يرجى إما تنزيل JAR من واجهة برمجة التطبيقات أو إضافة تكوين pom.xml التالي في تطبيق Java المستند إلى Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>http://repository.aspose.com/repo/</url>
</repository>
<dependency>
     <groupId>com.aspose</groupId>
     <artifactId>aspose-omr</artifactId>
     <version>19.12</version>
</dependency>

استخراج البيانات من صورة في جافا

نحتاج إلى نموذج OMR المُعد (.omr) جنبًا إلى جنب مع صورة النماذج / الأوراق المملوءة بالمستخدم لإجراء عملية القراءة الضوئية. يمكننا إجراء عملية القراءة الضوئية على صورة واستخراج البيانات باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة OmrEngine.
  2. بعد ذلك ، قم باستدعاء أسلوب ()getTemplateProcessor وتهيئة كائن فئة TemplateProcessor يأخذ مسار ملف قالب OMR كوسيطة.
  3. بعد ذلك ، احصل على الكائن RecognitionResult عن طريق استدعاء طريقة ()recognizeImage مع مسار الصورة كوسيطة.
  4. بعد ذلك ، احصل على نتائج التعرف كسلاسل CSV باستخدام طريقة ()getCsv.
  5. أخيرًا ، احفظ نتيجة CSV كملف CSV على القرص المحلي.

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

// يوضح مثال الكود هذا كيفية أداء OMR على صورة واستخراج البيانات
// مسار ملف قالب OMR
String templatePath = "C:\\Files\\OMR\\Sheet.omr";

// مسار ملف الصورة
String imagePath = "C:\\Files\\OMR\\Sheet1.png";

// تهيئة محرك OMR
OmrEngine engine = new OmrEngine();

// احصل على معالج القالب
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);

// التعرف على الصورة
RecognitionResult result = templateProcessor.recognizeImage(imagePath);

// احصل على نتائج بتنسيق CSV
String csvResult = result.getCsv();

// احفظ ملف CSV
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1.csv"), true);
wr.println(csvResult);
استخراج البيانات من صورة في جافا

قم بإجراء OMR واستخراج البيانات من صورة في Java.

يرجى تنزيل نموذج OMR المستخدم في منشور المدونة هذا.

أداء ريال عماني واستخراج البيانات من صور متعددة

يمكننا إجراء عمليات OMR على صور متعددة واستخراج البيانات في ملف CSV منفصل لكل صورة باتباع الخطوات المذكورة سابقًا. ومع ذلك ، نحتاج إلى تكرار الخطوات رقم 3 و 4 و 5 لجميع الصور واحدة تلو الأخرى.

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

// يوضح مثال الكود هذا كيفية أداء OMR على صور متعددة واستخراج البيانات
// مسار مجلد العمل
String folderPath = "C:\\Files\\OMR\\";

// مسار ملف قالب OMR
String templatePath = folderPath + "Sheet.omr";

// مسار ملف الصورة
String[] UserImages = new String[] { "Sheet1.png", "Sheet2.png" };

// تهيئة محرك OMR
OmrEngine engine = new OmrEngine();

// احصل على معالج القالب
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);

// معالجة الصور واحدة تلو الأخرى في حلقة
for (int i = 0; i < UserImages.length; i++)
{
    String image = UserImages[i];
    String imagePath = folderPath + image;

    // التعرف على الصورة
    RecognitionResult result = templateProcessor.recognizeImage(imagePath);

    // احصل على نتائج بتنسيق CSV
    String csvResult = result.getCsv();

    // احفظ ملف CSV
    PrintWriter wr = new PrintWriter(new FileOutputStream(folderPath + "Sheet_" + i + ".csv"), true);
    wr.println(csvResult);
    System.out.println(csvResult);
}

استخراج بيانات ريال عماني مع العتبة في جافا

يمكننا إجراء عمليات ريال عماني بقيمة حدية (من 0 إلى 100) حسب المتطلبات. كلما زادت قيمة الحد ، كلما زادت صرامة واجهة برمجة التطبيقات في تمييز الإجابات. يرجى اتباع الخطوات المذكورة سابقًا لأداء OMR مع الحد الأدنى. ومع ذلك ، نحتاج فقط إلى استدعاء طريقة recognizeImage المحملة بشكل زائد (سلسلة ، int32) في الخطوة رقم 3. فهي تأخذ مسار ملف الصورة وقيمة العتبة كوسائط.

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

// يوضح مثال الكود هذا كيفية أداء OMR باستخدام القص واستخراج البيانات من الصورة
// مسار ملف قالب OMR
String templatePath = "C:\\Files\\OMR\\Sheet.omr";

// مسار ملف الصورة
String imagePath = "C:\\Files\\OMR\\Sheet1.png";

// قيمة العتبة
int CustomThreshold = 40;

// تهيئة محرك OMR
OmrEngine engine = new OmrEngine();

// احصل على معالج القالب
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);

// التعرف على الصورة
RecognitionResult result = templateProcessor.recognizeImage(imagePath, CustomThreshold);

// احصل على نتائج بتنسيق CSV
String csvResult = result.getCsv();

// احفظ ملف CSV
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1_threshold.csv"), true);
wr.println(csvResult);
System.out.println(csvResult);

استخراج بيانات OMR مع إعادة الحساب في Java

في بعض الحالات ، قد نحتاج إلى إعادة حساب نتائج القراءة السريعة بقيم حد مختلفة. لهذا الغرض ، يمكننا تكوين API لإعادة الحساب تلقائيًا باستخدام طريقة ()TemplateProcessor.recalculate. يسمح بمعالجة صورة عدة مرات عن طريق تغيير إعداد العتبة للحصول على النتيجة المرجوة. يمكننا إجراء عملية OMR مع إعادة الحساب باتباع الخطوات الواردة أدناه:

  1. أولاً ، قم بإنشاء مثيل لفئة OmrEngine.
  2. بعد ذلك ، قم باستدعاء أسلوب ()getTemplateProcessor وتهيئة كائن فئة TemplateProcessor يأخذ مسار ملف قالب OMR كوسيطة.
  3. بعد ذلك ، احصل على الكائن RecognitionResult عن طريق استدعاء طريقة ()recognImage مع مسار الصورة كوسيطة.
  4. بعد ذلك ، ينتج التعرف على التصدير كسلسلة CSV باستخدام أسلوب GetCsv ().
  5. ثم احفظ نتيجة CSV كملف CSV على القرص المحلي.
  6. بعد ذلك ، قم باستدعاء طريقة ()recalculate يأخذ الكائن RecognitionResult وقيمة العتبة كوسائط.
  7. بعد ذلك ، ينتج التعرف على التصدير كسلسلة CSV باستخدام أسلوب ()getCsv.
  8. أخيرًا ، احفظ نتيجة CSV كملف CSV على القرص المحلي.

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

// مسار ملف قالب OMR
String templatePath = "C:\\Files\\OMR\\Sheet.omr";

// مسار ملف الصورة
String imagePath = "C:\\Files\\OMR\\Sheet1.png";

// قيمة العتبة
int CustomThreshold = 40;

// تهيئة محرك OMR
OmrEngine engine = new OmrEngine();

// احصل على معالج القالب
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);

// التعرف على الصورة
RecognitionResult result = templateProcessor.recognizeImage(imagePath, CustomThreshold);

// احصل على نتائج بتنسيق CSV
String csvResult = result.getCsv();

// احفظ ملف CSV
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1.csv"), true);
wr.println(csvResult);

// إعادة الحساب
// يمكنك تطبيق قيمة عتبة جديدة هنا
templateProcessor.recalculate(result, CustomThreshold);

// احصل على نتائج معاد حسابها في ملف CSV
csvResult = result.getCsv();

// حفظ ملف CSV الناتج المعاد حسابه
PrintWriter finalWr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1_recalculated.csv"), true);
finalWr.println(csvResult);

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

يمكنك الحصول على ترخيص مؤقت مجاني لتجربة المكتبة دون قيود التقييم.

استنتاج

في هذه المقالة ، تعلمنا كيفية:

  • إجراء عملية OMR على الصور ؛
  • استخراج البيانات بتنسيق CSV برمجيًا ؛
  • تطبيق إعداد العتبة أثناء أداء OMR على الصور ؛
  • إعادة حساب نتائج OMR في عملية السيارات باستخدام Java.

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

أنظر أيضا