
نظرة عامة
التعرف على العلامات البصرية (OMR) هو عملية إلكترونية تسهل قراءة والتقاط البيانات التي يحددها الأشخاص على نماذج الوثائق المصممة خصيصًا، مثل الاختبارات أو الاستطلاعات، والتي تتضمن مدخلات فقاعية أو مربعة يملؤها المستخدمون. من خلال استخدام استخراج البيانات من الصور في جافا، يمكننا إدارة الصور الممسوحة لهذه النماذج الاستطلاعية أو الاستبيانات أو أوراق الاختبار بكفاءة، مما يجعل من الممكن قراءة مدخلات المستخدم برمجيًا. ستوجهك هذه المقالة حول كيفية إجراء OMR واستخراج البيانات من الصور باستخدام جافا.
ستتم تغطية الموضوعات التالية في هذه المقالة:
- واجهة برمجة تطبيقات جافا OMR لاستخراج البيانات من الصورة
- استخراج البيانات من الصور في جافا
- إجراء OMR واستخراج البيانات من عدة صور
- استخراج بيانات OMR مع العتبة
- استخراج بيانات OMR مع إعادة الحساب
واجهة برمجة تطبيقات جافا OMR لاستخراج البيانات من الصورة
للقيام بعمليات OMR واستخراج البيانات من الصور في جافا، سنستخدم Aspose.OMR لواجهة برمجة التطبيقات في جافا. تتيح هذه الأداة القوية تصميم وإنشاء والتعرف على أوراق الإجابة، والاختبارات، وأوراق الأسئلة متعددة الخيارات، والاختبارات القصيرة، ونماذج التغذية الراجعة، والاستطلاعات، والبطاقات الانتخابية.
الفئة OmrEngine داخل واجهة برمجة التطبيقات مسؤولة عن إنشاء القوالب ومعالجة الصور. تقوم طريقة getTemplateProcessor(String templatePath) بتهيئة مثيل TemplateProcessor مصمم للتعامل مع القوالب والصور. للتعرف على صورة، يمكن استخدام طريقة recognizeImage(String imagePath)، والتي تُرجع جميع عناصر OMR كمثيل من فئة RecognitionResult. باستخدام طريقة getCsv()، يمكنك إنشاء سلسلة CSV تحتوي على نتائج التعرف. بالإضافة إلى ذلك، تقوم طريقة recalculate(RecognitionResult result, int recognitionThreshold) بتحسين نتائج التعرف باستخدام معلمات مخصصة.
يرجى إما تنزيل JAR من واجهة برمجة التطبيقات أو إضافة تكوين pom.xml التالي في تطبيق جافا يعتمد على مافن.
<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 المعد (.omr) وصورة لنماذج أو أوراق مملوءة من قبل المستخدم. تتضمن عملية استخراج البيانات من الصور في جافا، باستخدام عمليات OMR، الخطوات التالية:
- أولاً، أنشئ مثيل من فئة OmrEngine.
- بعد ذلك، اتصل بطريقة getTemplateProcessor() وتهيئة كائن من فئة TemplateProcessor، مع تمرير مسار ملف القالب OMR كوسيط.
- ثم، احصل على كائن RecognitionResult عن طريق استدعاء طريقة recognizeImage() مع مسار الصورة كوسيط.
- بعد ذلك، احصل على نتائج التعرف كسلاسل CSV باستخدام طريقة getCsv().
- أخيرًا، احفظ نتيجة CSV كملف CSV على القرص المحلي.
توضح عينة الكود التالية كيفية إجراء استخراج البيانات من الصور في جافا عن طريق تحويل بيانات OMR إلى تنسيق CSV.
// This code example demonstrates how to perform OMR on an image and extract data | |
// OMR Template file path | |
String templatePath = "C:\\Files\\OMR\\Sheet.omr"; | |
// Image file path | |
String imagePath = "C:\\Files\\OMR\\Sheet1.png"; | |
// Initialize OMR Engine | |
OmrEngine engine = new OmrEngine(); | |
// Get template processor | |
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath); | |
// Recognize image | |
RecognitionResult result = templateProcessor.recognizeImage(imagePath); | |
// Get results in CSV | |
String csvResult = result.getCsv(); | |
// Save CSV file | |
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1.csv"), true); | |
wr.println(csvResult); |

إجراء OMR واستخراج البيانات من صورة في جافا.
يرجى تنزيل القالب OMR المستخدم في هذه المقالة.
إجراء OMR واستخراج البيانات من عدة صور
يمكننا إجراء عمليات OMR على عدة صور واستخراج البيانات في ملف CSV منفصل لكل منها، باستخدام الخطوات الموضحة سابقًا. لإتمام استخراج البيانات من الصور في جافا، من الضروري تكرار الخطوات 3 و4 و5 لكل صورة على حدة.
فيما يلي عينة كود توضح كيفية استخراج بيانات OMR من عدة صور باستخدام جافا.
// This code example demonstrates how to perform OMR on multiple images and extract data | |
// Working folder path | |
String folderPath = "C:\\Files\\OMR\\"; | |
// OMR Template file path | |
String templatePath = folderPath + "Sheet.omr"; | |
// Image file path | |
String[] UserImages = new String[] { "Sheet1.png", "Sheet2.png" }; | |
// Initialize OMR Engine | |
OmrEngine engine = new OmrEngine(); | |
// Get template processor | |
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath); | |
// Process images one by one in a loop | |
for (int i = 0; i < UserImages.length; i++) | |
{ | |
String image = UserImages[i]; | |
String imagePath = folderPath + image; | |
// Recognize image | |
RecognitionResult result = templateProcessor.recognizeImage(imagePath); | |
// Get results in CSV | |
String csvResult = result.getCsv(); | |
// Save CSV file | |
PrintWriter wr = new PrintWriter(new FileOutputStream(folderPath + "Sheet_" + i + ".csv"), true); | |
wr.println(csvResult); | |
System.out.println(csvResult); | |
} |
استخراج بيانات OMR مع العتبة في جافا
لإجراء عمليات التعرف على العلامات البصرية (OMR) في جافا، نستخدم قيمة عتبة بين 0 و100 بناءً على متطلبات محددة. تحدد قيمة العتبة هذه، المستخدمة في استخراج البيانات من الصور في جافا، مدى صرامة واجهة برمجة التطبيقات في إبراز الإجابات؛ فكلما زادت القيمة، زادت الصرامة. من الضروري الالتزام بالخطوات المذكورة سابقًا لمعالجة OMR مع العتبة المختارة. على وجه الخصوص، ضمن الخطوة #3، يجب استدعاء طريقة recognizeImage(string, int32). تتطلب هذه الطريقة الزائدة عن الحاجة مسار ملف الصورة وقيمة العتبة المطلوبة كوسيطين.
توضح عينة الكود التالية كيفية إجراء OMR مع قيمة عتبة باستخدام جافا:
// This code example demonstrates how to perform OMR with therashold and extract data from an image | |
// OMR Template file path | |
String templatePath = "C:\\Files\\OMR\\Sheet.omr"; | |
// Image file path | |
String imagePath = "C:\\Files\\OMR\\Sheet1.png"; | |
// Threshold value | |
int CustomThreshold = 40; | |
// Initialize OMR Engine | |
OmrEngine engine = new OmrEngine(); | |
// Get template processor | |
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath); | |
// Recognize image | |
RecognitionResult result = templateProcessor.recognizeImage(imagePath, CustomThreshold); | |
// Get results in CSV | |
String csvResult = result.getCsv(); | |
// Save CSV file | |
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1_threshold.csv"), true); | |
wr.println(csvResult); | |
System.out.println(csvResult); |
استخراج بيانات OMR مع إعادة الحساب في جافا
عند التعامل مع استخراج البيانات من الصور في جافا بدقة، وخاصة فيما يتعلق بـ OMR، قد تكون هناك حاجة لإعادة حساب النتائج باستخدام قيم عتبة مختلفة. من خلال تكوين واجهة برمجة التطبيقات، يمكن أتمتة إعادة الحساب من خلال طريقة TemplateProcessor.recalculate(). تتيح هذه الطريقة إجراء عدة دورات معالجة الصور عن طريق ضبط العتبة حتى يتم تحقيق النتيجة المطلوبة. لإجراء عملية OMR بنجاح مع إعادة الحساب، اتبع الخطوات أدناه:
- أولاً، أنشئ مثيل من فئة OmrEngine.
- بعد ذلك، اتصل بطريقة getTemplateProcessor() وتهيئة كائن من فئة TemplateProcessor. تأخذ مسار ملف القالب OMR كوسيط.
- ثم، احصل على كائن RecognitionResult عن طريق استدعاء طريقة recognizeImage() مع مسار الصورة كوسيط.
- بعد ذلك، قم بتصدير نتائج التعرف كسلسلة CSV باستخدام طريقة getCsv().
- ثم، احفظ نتيجة CSV كملف CSV على القرص المحلي.
- بعد ذلك، اتصل بطريقة recalculate(). تأخذ كائن RecognitionResult وقيمة العتبة كوسيطين.
- بعد ذلك، قم بتصدير نتائج التعرف كسلسلة CSV باستخدام طريقة getCsv().
- أخيرًا، احفظ نتيجة CSV كملف CSV على القرص المحلي.
توضح عينة الكود التالية كيفية إجراء OMR باستخدام طريقة إعادة الحساب باستخدام جافا:
// OMR Template file path | |
String templatePath = "C:\\Files\\OMR\\Sheet.omr"; | |
// Image file path | |
String imagePath = "C:\\Files\\OMR\\Sheet1.png"; | |
// Threshold value | |
int CustomThreshold = 40; | |
// Initialize OMR Engine | |
OmrEngine engine = new OmrEngine(); | |
// Get template processor | |
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath); | |
// Recognize image | |
RecognitionResult result = templateProcessor.recognizeImage(imagePath, CustomThreshold); | |
// Get results in CSV | |
String csvResult = result.getCsv(); | |
// Save CSV file | |
PrintWriter wr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1.csv"), true); | |
wr.println(csvResult); | |
// Recalculate | |
// You may apply new threshold value here | |
templateProcessor.recalculate(result, CustomThreshold); | |
// Get recalculated results in CSV | |
csvResult = result.getCsv(); | |
// Save recalculated resultant CSV file | |
PrintWriter finalWr = new PrintWriter(new FileOutputStream("C:\\Files\\OMR\\Sheet1_recalculated.csv"), true); | |
finalWr.println(csvResult); |
احصل على ترخيص مجاني
لديك الفرصة للحصول على ترخيص مؤقت مجاني لتجربة المكتبة دون قيود تقييم. هذه طريقة رائعة لاستكشاف ميزات مثل استخراج البيانات من الصور في جافا، مما يتيح لك تقييم قدراتها بالكامل. تظل بيانات القائمة أدناه دون تغيير للرجوع إليها:
- تعمل المكتبة بكفاءة مع كميات كبيرة من البيانات.
- التكامل مع الأنظمة الحالية سلس.
- البيانات المستخرجة دقيقة وموثوقة للغاية.
- خطوات التثبيت واضحة ومُوثقة جيدًا.
الخاتمة
في هذه المقالة، تعلمنا كيفية:
- إجراء عملية OMR على الصور؛
- استخراج البيانات بتنسيق CSV برمجيًا؛
- تطبيق إعداد العتبة أثناء إجراء OMR على الصور؛
- إعادة حساب نتائج OMR في عملية أوتوماتيكية باستخدام جافا.
بالإضافة إلى ذلك، عند التعامل مع استخراج البيانات من الصور في جافا، يمكنك استكشاف المزيد حول واجهة برمجة التطبيقات Aspose.OMR لجافا من خلال مراجعة التوثيق. إذا واجهت أي مشاكل، فلا تتردد في الاتصال بنا على منتدى الدعم المجاني.