Nhận dạng dấu quang học (OMR) là một quá trình truy xuất dữ liệu từ một tài liệu có một loại đánh dấu nhất định. Các dấu hiệu được thực hiện bởi con người và được đọc bởi phần mềm đọc phiếu trả lời OMR hoặc máy quét. Tuy nhiên, OMR là một thành phần quan trọng trong việc tự động hóa việc tạo và đánh giá các phiếu trả lời và mẫu OMR. Vì vậy, bài đăng trên blog này sẽ giới thiệu một thư viện OMR dành cho các lập trình viên Java. Aspose.OMR for Java cung cấp các tính năng để xây dựng trình đọc phiếu OMR trong Java theo chương trình. Ngoài ra, chúng ta cũng sẽ tìm hiểu một công cụ OMR trực tuyến nên hãy đọc kỹ bài viết này.
Chúng tôi sẽ đề cập đến các phần sau trong bài đăng trên blog này:
- Aspose.OMR for Java - Cài đặt thư viện OMR
- OMR Sheet Reader trong Java - Mã mẫu
- Công cụ OMR trực tuyến
Aspose.OMR for Java - Cài đặt thư viện OMR
Có một hướng dẫn toàn diện về cài đặt. Vì vậy, bạn có thể tải xuống tệp JAR hoặc sử dụng các cấu hình Maven sau:
<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>
OMR Sheet Reader trong Java - Mẫu mã
Bây giờ chúng ta có thể bắt đầu phát triển phần mềm đọc bảng OMR bằng cách làm theo các bước được đề cập dưới đây:
- Tạo một đối tượng của lớp OmrEngine.
- Gọi phương thức getTemplateProcessor để lấy bộ xử lý mẫu.
- Đặt ngưỡng tùy chỉnh để sử dụng trong tính toán lại có phạm vi là (0 đến 100).Giảm giá trị - càng ít pixel đen cần thiết để một bong bóng được tính là đã lấp đầy và ngược lại.
- Lặp lại các hình ảnh.
- Nhận dạng hình ảnh bằng cách gọi phương thức recognizeImage.
- Gọi phương thức getCsv để lấy chuỗi CSV xuất và lưu CSV vào thư mục đầu ra.
- Gọi phương thức tính toán lại để tính toán lại kết quả nhận dạng với ngưỡng tùy chỉnh.
- Lưu kết quả đã tính toán lại vào tệp CSV.
Đoạn mã sau đây minh họa cách phát triển trình đọc bảng tính OMR bằng Java theo phương pháp lập trình:
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;
// Trình đọc OMR Sheet trong Java - OMR Sheet PNG
public class Main {
public static void main(String[] args) throws Exception {
// Xác định thư mục làm việc.
String[] UserImages = new String[] { "/Sheet.png" };
String[] UserImagesNoExt = new String[] { "/files/" };
String templatePath = "/Sheet.omr";
// Tạo một đối tượng của lớp OmrEngine.
OmrEngine engine = new OmrEngine();
// Gọi phương thức getTemplateProcessor để lấy bộ xử lý mẫu.
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
// Đặt ngưỡng tùy chỉnh để sử dụng trong tính toán lại có phạm vi là (0 đến 100).Giảm giá trị - càng ít pixel đen cần thiết để một bong bóng được tính là đã lấp đầy và ngược lại.
int CustomThreshold = 0;
// Lặp lại các hình ảnh.
for (int i = 0; i < UserImages.length; i++)
{
String image = UserImages[i];
String imagePath = image;
// Nhận dạng hình ảnh bằng cách gọi phương thức recognizeImage.
RecognitionResult result = templateProcessor.recognizeImage(imagePath);
// Gọi phương thức getCsv để lấy chuỗi CSV xuất và lưu CSV vào thư mục đầu ra.
String stringRes = result.getCsv();
String outputName = UserImagesNoExt[i] + ".csv";
PrintWriter wr = new PrintWriter(new FileOutputStream(outputName), true);
wr.println(stringRes);
// Gọi phương thức tính toán lại để tính toán lại kết quả nhận dạng với ngưỡng tùy chỉnh.
templateProcessor.recalculate(result, CustomThreshold);
stringRes = result.getCsv();
// Lưu kết quả đã tính toán lại vào tệp CSV.
outputName = UserImagesNoExt[i] + "_recalculated.csv";
wr = new PrintWriter(new FileOutputStream(outputName), true);
wr.println(stringRes);
}
}
}
Bạn có thể thấy kết quả ở hình ảnh bên dưới:
Công cụ OMR trực tuyến
Ngoài thư viện OMR cho Java, Aspose.OMR còn hỗ trợ trình đọc phiếu OMR trực tuyến. Vì vậy, công cụ miễn phí này cực kỳ an toàn và quét phiếu trả lời bong bóng hiệu quả. Trên hết, không cần tạo tài khoản hoặc đăng ký. Vì vậy, bạn có thể sử dụng nó chỉ bằng cách kéo và thả tệp.
OMR Sheet PNG - Nhận giấy phép miễn phí
Bây giờ, bạn có thể sử dụng giấy phép tạm thời miễn phí để dùng thử thư viện OMR này ngoài những giới hạn đánh giá.
Phần kết luận
Điều này đưa chúng ta đến phần cuối của bài đăng trên blog này. Chúng ta đã tìm hiểu OMR là gì và cách triển khai xây dựng trình đọc bảng tính OMR trong Java. Tương tự như vậy, bạn có thể tận dụng thư viện OMR này để tiết kiệm thời gian và nhân lực vì bạn có thể phát triển phần mềm trình đọc bảng tính OMR của riêng mình. Ngoài ra, bạn có thể truy cập kho lưu trữ GitHub để bắt đầu phát triển. Hơn nữa, bạn có thể truy cập tài liệu và tham chiếu API để tìm hiểu thêm về Aspose.OMR for Java.
Trợ giúp có sẵn
Bạn có thể chia sẻ câu hỏi hoặc thắc mắc của mình trên diễn đàn của chúng tôi.
Những câu hỏi thường gặp – FAQs
Chúng tôi có thể kiểm tra tờ OMR trực tuyến không?
Bạn có thể sử dụng trình đọc phiếu trả lời OMR trực tuyến này để kiểm tra phiếu trả lời OMR.
Làm thế nào để đọc bảng OMR trong Java?
Aspose.OMR for Java là một thư viện OMR cung cấp nhiều tính năng phong phú để đọc phiếu trả lời OMR theo chương trình. Xem liên kết này để tìm hiểu cách thực hiện.