Trích xuất Dữ liệu Từ Ảnh trong Java

Tổng Quan

Nhận dạng dấu hiệu quang học (OMR) là một quy trình điện tử giúp đọc và nắm bắt dữ liệu được đánh dấu bởi con người trên các biểu mẫu tài liệu được thiết kế đặc biệt, chẳng hạn như bài kiểm tra hoặc khảo sát, bao gồm các đầu vào dạng bong bóng hoặc hình vuông được người dùng điền. Bằng cách sử dụng trích xuất dữ liệu từ ảnh trong Java, chúng ta có thể xử lý hiệu quả các bức ảnh quét của những biểu mẫu khảo sát, bảng câu hỏi hoặc bảng kiểm tra, giúp đọc đầu vào của người dùng một cách lập trình. Bài viết này sẽ hướng dẫn bạn cách thực hiện OMR và trích xuất dữ liệu từ ảnh bằng Java.

Các chủ đề sau đây sẽ được đề cập trong bài viết này:

  1. Java OMR API để Trích xuất Dữ liệu từ Ảnh
  2. Trích xuất Dữ liệu Từ Ảnh trong Java
  3. Thực hiện OMR và Trích xuất Dữ liệu từ Nhiều Ảnh
  4. Trích xuất Dữ liệu OMR với Ngưỡng
  5. Trích xuất Dữ liệu OMR với Tái tính toán

Java OMR API để Trích xuất Dữ liệu từ Ảnh

Để thực hiện các thao tác OMR và trích xuất dữ liệu từ ảnh trong Java, chúng tôi sẽ sử dụng Aspose.OMR cho Java API. Công cụ mạnh mẽ này cho phép thiết kế, tạo và nhận diện các bảng trả lời, bài kiểm tra, giấy câu hỏi trắc nghiệm, bài kiểm tra, biểu mẫu phản hồi, khảo sát và phiếu bầu.

Lớp OmrEngine trong API chịu trách nhiệm tạo ra các mẫu và xử lý ảnh. Phương thức getTemplateProcessor(String templatePath) của nó khởi tạo một phiên bản TemplateProcessor được thiết kế để xử lý các mẫu và hình ảnh. Để nhận diện một bức ảnh, có thể sử dụng phương thức recognizeImage(String imagePath), phương thức này sẽ trả về tất cả các phần tử OMR dưới dạng một phiên bản lớp RecognitionResult. Bằng cách sử dụng phương thức getCsv(), bạn có thể tạo một chuỗi CSV chứa các kết quả nhận diện. Thêm vào đó, phương thức recalculate(RecognitionResult result, int recognitionThreshold) sẽ tinh chỉnh các kết quả nhận diện với các tham số tùy chỉnh.

Vui lòng tải xuống JAR của API hoặc thêm cấu hình pom.xml sau vào một ứng dụng Java dựa trên Maven.

<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>

Trích xuất Dữ liệu Từ Ảnh trong Java

Để thực hiện một thao tác OMR, chúng ta cần tệp mẫu OMR đã chuẩn bị (.omr) và hình ảnh của các biểu mẫu hoặc bảng đã được người dùng điền. Quy trình trích xuất dữ liệu từ ảnh trong Java, cụ thể là sử dụng các thao tác OMR, bao gồm các bước sau:

  1. Đầu tiên, tạo một phiên bản của lớp OmrEngine.
  2. Tiếp theo, gọi phương thức getTemplateProcessor() và khởi tạo một đối tượng lớp TemplateProcessor, truyền đường dẫn tệp mẫu OMR làm tham số.
  3. Sau đó, nhận được đối tượng RecognitionResult bằng cách gọi phương thức recognizeImage() với đường dẫn hình ảnh làm tham số.
  4. Tiếp theo, xuất kết quả nhận diện dưới dạng chuỗi CSV bằng cách sử dụng phương thức getCsv().
  5. Cuối cùng, lưu kết quả CSV dưới dạng tệp CSV trên ổ đĩa cục bộ.

Mẫu mã sau đây minh họa cách thực hiện trích xuất dữ liệu từ ảnh trong Java bằng cách chuyển đổi dữ liệu OMR thành định dạng CSV.

Trích xuất Dữ liệu từ Ảnh trong Java

Thực hiện OMR và Trích xuất Dữ liệu từ một bức ảnh trong Java.

Vui lòng tải xuống mẫu OMR được sử dụng trong bài viết này.

Thực hiện OMR và Trích xuất Dữ liệu từ Nhiều Ảnh

Chúng ta có thể thực hiện các thao tác OMR trên nhiều hình ảnh và trích xuất dữ liệu vào một tệp CSV riêng cho mỗi hình ảnh, sử dụng các bước đã nêu trước đó. Để hoàn thành trích xuất dữ liệu từ ảnh trong Java, cần lặp lại các bước 3, 4 và 5 cho từng hình ảnh một.

Dưới đây là một mẫu mã minh họa cách trích xuất dữ liệu OMR từ nhiều hình ảnh bằng Java.

. Dữ liệu danh sách, dù là dạng gạch đầu dòng hay đánh số, phải giữ nguyên hoàn toàn.

Trích xuất Dữ liệu OMR với Ngưỡng trong Java

Để thực hiện các thao tác Nhận diện Dấu hiệu Quang học (OMR) trong Java, chúng tôi sử dụng một giá trị ngưỡng giữa 0 và 100 dựa trên các yêu cầu cụ thể. Giá trị ngưỡng này, được sử dụng trong trích xuất dữ liệu từ ảnh trong Java, quyết định độ nghiêm ngặt mà API sẽ áp dụng trong việc làm nổi bật các câu trả lời; giá trị cao hơn sẽ làm tăng tính nghiêm ngặt. Việc tuân thủ các bước đã đề cập trước đó là cần thiết cho quy trình OMR với ngưỡng đã chọn. Cụ thể, trong bước #3, phương thức recognizeImage(string, int32) phải được gọi. Phương thức quá tải này yêu cầu đường dẫn tệp hình ảnh và giá trị ngưỡng mong muốn làm các tham số của nó.

Mẫu mã sau đây minh họa cách thực hiện OMR với giá trị ngưỡng bằng Java:

Trích xuất Dữ liệu OMR với Tái tính toán trong Java

Khi xử lý trích xuất dữ liệu từ ảnh trong Java, đặc biệt liên quan đến OMR, có thể có nhu cầu tái tính toán các kết quả bằng cách sử dụng các giá trị ngưỡng khác nhau. Bằng cách cấu hình API, việc tái tính toán có thể được tự động hóa thông qua phương thức TemplateProcessor.recalculate(). Cách tiếp cận này cho phép xử lý nhiều hình ảnh một cách lặp đi lặp lại bằng cách điều chỉnh ngưỡng cho đến khi đạt được kết quả mong muốn. Để thực hiện thành công thao tác OMR với tái tính toán, hãy làm theo các bước dưới đây:

  1. Đầu tiên, tạo một phiên bản của lớp OmrEngine.
  2. Tiếp theo, gọi phương thức getTemplateProcessor() và khởi tạo đối tượng lớp TemplateProcessor. Nó nhận đường dẫn tệp mẫu OMR làm tham số.
  3. Sau đó, nhận được đối tượng RecognitionResult bằng cách gọi phương thức recognizeImage() với đường dẫn hình ảnh làm tham số.
  4. Tiếp theo, xuất kết quả nhận diện dưới dạng chuỗi CSV bằng cách sử dụng phương thức getCsv().
  5. Sau đó, lưu kết quả CSV dưới dạng tệp CSV trên ổ đĩa cục bộ.
  6. Tiếp theo, gọi phương thức recalculate(). Nó nhận đối tượng RecognitionResult và giá trị ngưỡng làm tham số.
  7. Sau đó, xuất kết quả nhận diện dưới dạng chuỗi CSV bằng cách sử dụng phương thức getCsv().
  8. Cuối cùng, lưu kết quả CSV dưới dạng tệp CSV trên ổ đĩa cục bộ.

Mẫu mã sau đây minh họa cách thực hiện OMR với phương thức tái tính toán bằng Java:

.

Nhận Giấy phép Miễn phí

Bạn có cơ hội để nhận giấy phép tạm thời miễn phí để thử nghiệm thư viện mà không có giới hạn đánh giá. Đây là cách tuyệt vời để khám phá các tính năng như trích xuất dữ liệu từ ảnh trong Java, cho phép bạn đánh giá đầy đủ khả năng của nó. Dữ liệu danh sách dưới đây vẫn giữ nguyên để bạn tham khảo:

  1. Thư viện hoạt động hiệu quả với khối lượng dữ liệu lớn.
  2. Tích hợp với các hệ thống hiện có là liền mạch.
  3. Dữ liệu được trích xuất có độ chính xác và độ tin cậy cao.
  4. Các bước cài đặt đơn giản và được tài liệu hóa tốt.

Kết Luận

Trong bài viết này, chúng ta đã học cách:

  • thực hiện thao tác OMR trên ảnh;
  • trích xuất dữ liệu ở định dạng CSV một cách lập trình;
  • áp dụng thiết lập ngưỡng khi thực hiện OMR trên ảnh;
  • tái tính toán kết quả OMR trong một quy trình tự động bằng Java.

Ngoài ra, khi xử lý trích xuất dữ liệu từ ảnh trong Java, bạn có thể tìm hiểu thêm về API Aspose.OMR cho Java bằng cách xem lại tài liệu. Nếu bạn gặp bất kỳ vấn đề nào, hãy liên hệ với chúng tôi trên diễn đàn hỗ trợ miễn phí.

Xem Thêm