تشخیص علامت نوری (OMR) اغلب برای بررسی نظرسنجی ها، پرسشنامه ها و مقالات امتحانی چند گزینه ای استفاده می شود. این یک روش سریع و دقیق برای پردازش فرم ها است. در این مقاله، نحوه ایجاد قالب های OMR و بررسی برگه های پاسخ پر شده با استفاده از جاوا را خواهید آموخت.

Java API برای تولید الگوهای OMR و انجام عملیات OMR

Aspose.OMR برای جاوا یک API تشخیص علامت نوری است که می‌تواند عملیات OMR را روی PNG، GIF، JPEG، TIFF انجام دهد، و غیره تصاویر API همچنین از تولید قالب های OMR پشتیبانی می کند. می‌توانید 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>

با استفاده از جاوا الگوی OMR و تصویر برگه پاسخ ایجاد کنید

در این بخش، نحوه تولید فایل های قالب OMR و تصاویر برگه پاسخ با استفاده از نشانه گذاری متنی ساده را خواهید آموخت. ما نشانه گذاری متن را در یک فایل TXT ذخیره می کنیم و از آن در کد جاوا برای تولید الگوی 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 را با استفاده از نشانه گذاری متن با جاوا نشان می دهد.

// مسیرهای دایرکتوری منبع و خروجی
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
res.save(outputDirectory, "Grid");

کد بالا یک فایل قالب OMR و تصویری از برگه پاسخ ایجاد می کند. در زیر تصویر پاسخنامه تولید شده است.

تصویر پاسخنامه تولید شده توسط کد نمونه

تصویر پاسخنامه تولید شده توسط کد نمونه

عملیات OMR را روی برگه‌های پاسخ حباب با استفاده از جاوا انجام دهید

پس از جمع‌آوری پاسخ‌ها در پاسخنامه تولید شده، می‌توانید تصاویر آن‌ها را بگیرید و سپس عملیات OMR را روی آن‌ها انجام دهید. در این مثال عملیات OMR را روی دو تصویر انجام می دهیم. اولین مورد در زیر نشان داده شده است.

مراحل زیر برای انجام عملیات OMR روی تصاویر آمده است.

کد نمونه زیر نحوه انجام عملیات OMR روی تصاویر با استفاده از جاوا را نشان می دهد.

// مسیرهای دایرکتوری منبع و خروجی
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" 

مجوز رایگان دریافت کنید

با درخواست [مجوز موقت رایگان] می‌توانید API را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله نحوه تولید قالب های OMR و تصاویر برگه پاسخ با استفاده از جاوا را یاد گرفتید. علاوه بر این، شما یاد گرفته اید که چگونه عملیات OMR را روی تصاویر انجام دهید و نتیجه را به صورت CSV دریافت کنید. Aspose.OMR برای جاوا یک API قوی برای وظایف مربوط به OMR شما است که می توانید با مراجعه به مستندات رسمی جزئیات آن را بررسی کنید. اگر در مورد هر جنبه ای از API سؤالی دارید، لطفاً در تالار گفتمان پشتیبانی رایگان ما با ما تماس بگیرید.

همچنین ببینید