光學標記辨識 (OMR) 是從具有某種標記類型的文件中檢索資料的過程。標記由人工完成,並由 OMR 紙張閱讀器軟體或掃描器讀取。然而,OMR 是自動建立和評估答案捲和 OMR 範本的重要組成部分。因此,這篇部落格文章將為 Java 程式設計師介紹一個 OMR 函式庫。 Aspose.OMR for Java 提供了以程式設計方式在 Java 中建立 OMR 表格閱讀器的功能。此外,我們還將使用線上 OMR 工具,因此請仔細閱讀本文。
我們將在這篇文章中介紹以下部分:
Aspose.OMR for Java - OMR 函式庫安裝
有一個關於安裝的綜合指南。因此,您可以下載 JAR 檔案或使用下列 Maven 配置:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://releases.aspose.com/java/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-omr</artifactId>
<version>23.12</version>
</dependency>
</dependencies>
Java 中的 OMR Sheet Reader - 程式碼範例
我們現在可以按照以下步驟開始開發 OMR 紙張閱讀器軟體:
- 建立 OmrEngine 類別的物件。
- 呼叫 getTemplateProcessor 方法來取得模板處理器。
- 設定用於重新計算的自訂閾值,其範圍為(0 到 100)。數值越低 - 氣泡被計算為填充所需的黑色像素就越少,反之亦然。
- 循環瀏覽圖像。
- 透過呼叫 recognizeImage 方法來識別圖像。
- 呼叫 getCsv 方法取得匯出的 CSV 字串並將 CSV 儲存到輸出資料夾。
- 呼叫recalculate方法以自訂閾值重新計算識別結果。
- 將重新計算的結果保存在 CSV 檔案中。
以下程式碼片段示範如何使用 Java 以程式設計方式開發 OMR 表格閱讀器:
package com.example;
import com.aspose.omr.OmrEngine;
import com.aspose.omr.RecognitionResult;
import com.aspose.omr.TemplateProcessor;
import java.io.FileOutputStream;
import java.io.PrintWriter;
// Java中的OMR表閱讀器-OMR表PNG
public class Main {
public static void main(String[] args) throws Exception {
// 定義工作目錄。
String[] UserImages = new String[] { "/Sheet.png" };
String[] UserImagesNoExt = new String[] { "/files/" };
String templatePath = "/Sheet.omr";
// 建立 OmrEngine 類別的物件。
OmrEngine engine = new OmrEngine();
// 呼叫 getTemplateProcessor 方法取得模板處理器。
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// 設定用於重新計算的自訂閾值,範圍為(0 到 100)。數值越低 - 氣泡被計算為填充所需的黑色像素就越少,反之亦然。
int CustomThreshold = 0;
// 循環瀏覽圖像。
for (int i = 0; i < UserImages.length; i++)
{
String image = UserImages[i];
String imagePath = image;
// 透過呼叫 recognizeImage 方法來識別圖像。
RecognitionResult result = templateProcessor.recognizeImage(imagePath);
// 呼叫 getCsv 方法取得匯出的 CSV 字串並將 CSV 儲存到輸出資料夾。
String stringRes = result.getCsv();
String outputName = UserImagesNoExt[i] + ".csv";
PrintWriter wr = new PrintWriter(new FileOutputStream(outputName), true);
wr.println(stringRes);
// 呼叫recalculate方法以自訂閾值重新計算識別結果。
templateProcessor.recalculate(result, CustomThreshold);
stringRes = result.getCsv();
// 將重新計算的結果儲存在 CSV 檔案中。
outputName = UserImagesNoExt[i] + "_recalculated.csv";
wr = new PrintWriter(new FileOutputStream(outputName), true);
wr.println(stringRes);
}
}
}
您可以在下圖中看到輸出:
線上OMR工具
除了 Java 的 OMR 庫之外,Aspose.OMR還支援線上 OMR 表閱讀器。因此,這個免費工具非常安全,可以有效地掃描氣泡答案紙。最重要的是,無需建立或訂閱帳戶。因此,您只需拖放文件即可使用它。
OMR表 PNG - 獲得免費許可證
現在,您可以利用免費臨時許可證 超越評估限制來嘗試此 OMR 庫。
結論
這篇文章到此結束。我們已經了解了什麼是 OMR 以及用 Java 建立 OMR 表格閱讀器的實作。同樣,您可以利用此 OMR 庫來節省時間和人力,因為您可以開發自己的 OMR 表格閱讀器軟體。此外,您可以存取 GitHub 儲存庫來開始開發。此外,您可以造訪文件和API參考以了解有關Aspose.OMR for Java的更多資訊。
提供協助
您可以在我們的論壇上分享您的問題或問題。
常見問題 – 常見問題解答
可以線上查OMR表嗎?
您可以使用此線上 OMR 試卷閱讀器來檢查 OMR 答案卷。
如何用Java讀取OMR表?
Aspose.OMR for Java 是一個 OMR 函式庫,提供豐富的功能以程式設計方式讀取 OMR 答案卷。請參閱此連結以了解如何操作。