翻譯|使用教程|編輯:李顯亮|2021-08-09 10:13:53.073|閱讀 329 次
概述:光學(xué)標(biāo)記識別 (OMR) 經(jīng)常用于檢查調(diào)查、問卷和多項(xiàng)選擇題試卷。它是一種快速而準(zhǔn)確的處理表格的方式。在本文中,將學(xué)習(xí)如何使用 Java 創(chuàng)建 OMR 模板和檢查填寫的答卷。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Aspose.OMR是一種光學(xué)標(biāo)記識別API,用于識別各種類型的答題紙,包括測試,評估,調(diào)查,測驗(yàn),MCQ論文,反饋表格-包括氣泡作為輸入的任何類型的文檔。API支持創(chuàng)建和讀取OMR表單,并以流行的圖像格式處理照片和掃描,并提供各種格式的輸出。
光學(xué)標(biāo)記識別 (OMR) 經(jīng)常用于檢查調(diào)查、問卷和多項(xiàng)選擇題試卷。它是一種快速而準(zhǔn)確的處理表格的方式。在本文中,將學(xué)習(xí)如何使用 Java 創(chuàng)建 OMR 模板和檢查填寫的答卷。
在本節(jié)中,將學(xué)習(xí)如何使用簡單的文本標(biāo)記生成 OMR 模板文件和答卷圖像。我們將文本標(biāo)記存儲在一個(gè) TXT 文件中,并在 Java 代碼中使用它來生成 OMR 模板。下面給出的是我們將在本示例中用于生成 OMR 模板的文本標(biāo)記:
?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________________________________
現(xiàn)在我們已經(jīng)準(zhǔn)備好了文本標(biāo)記,我們將按照下面給出的步驟來生成 OMR 模板。
以下示例代碼展示了如何使用 Java 文本標(biāo)記生成 OMR 模板。
// Source and output directory paths String sourceDirectory = "SourceDirectory\\OMR\\Generation\\"; String outputDirectory = "OutputDirectory\\"; // Create an instance of the OmrEngine class OmrEngine engine = new OmrEngine(); // Generate template using the text markup GenerationResult res = engine.generateTemplate(sourceDirectory + "Grid.txt"); // Check in case of errors if (res.getErrorCode() != 0) { System.out.println("ERROR CODE: " + res.getErrorCode()); } // Save the generation result: image and .omr template res.save(outputDirectory, "Grid");
上面的代碼會生成一個(gè) OMR 模板文件和一張答卷的圖片。以下是生成的答卷圖片。
在生成的答卷上收集到答案后,您可以捕獲它們的圖像,然后對其執(zhí)行 OMR 操作。在這個(gè)例子中,我們將對兩個(gè)圖像執(zhí)行 OMR 操作;第一個(gè)如下所示。
以下是對圖像進(jìn)行 OMR 操作的步驟。
以下示例代碼展示了如何使用 Java 對圖像執(zhí)行 OMR 操作。
// Source and output directory paths 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" }; // Create an instance of the OmrEngine class OmrEngine engine = new OmrEngine(); // Load the template file TemplateProcessor templateProcessor = engine.getTemplateProcessor(sourceDirectory + "Sheet.omr"); System.out.println("Template loaded."); // Loop through the images for (int i = 0; i < UserImages.length; i++) { // Recognize image and receive result RecognitionResult result = templateProcessor.recognizeImage(sourceDirectory + UserImages[i]); // Export results as csv string String csvResult = result.getCsv(); // Save csv to the output folder PrintWriter wr = new PrintWriter(new FileOutputStream(outputDirectory + UserImagesNoExt[i] + ".csv"), true); wr.println(csvResult); }
如果你想試用Aspose的全部完整功能,可聯(lián)系在線客服獲取30天臨時(shí)授權(quán)體驗(yàn)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn