Nhận dạng nhãn hiệu quang học, viết tắt là OMR, thường được sử dụng để đánh giá bảng câu hỏi, khảo sát và các tiêu chuẩn thu thập thông tin khác. Trong bài viết này, bạn có thể tìm hiểu cách tạo và kiểm tra câu hỏi OMR và bảng câu trả lời bong bóng bằng ngôn ngữ C# trong ứng dụng .NET. Chúng ta sẽ khám phá ngắn gọn các cách tiếp cận sau:

API trình kiểm tra và tạo mẫu OMR – Cài đặt Tạo mẫu bảng câu hỏi OMR, hình ảnh và tệp PDF bằng C# Thực hiện OMR trên Hình ảnh Bảng trả lời bong bóng trắc nghiệm bằng C#

API trình kiểm tra và tạo mẫu OMR – Cài đặt

Để tạo các mẫu OMR và thực hiện các thao tác OMR trong ứng dụng C# hoặc VB.NET, trước tiên chúng ta cần cài đặt Aspose.OMR for .NET API. Bạn có thể dễ dàng tải xuống từ Bản phát hành mới hoặc bằng Lệnh NuGet sau:

Install-Package Aspose.OMR -Version 20.6.0

Do đó, chúng tôi hiện đã sẵn sàng để tiến hành tạo tài nguyên bảng câu hỏi trắc nghiệm bằng API bằng C#:

Tạo mẫu bảng câu hỏi OMR, hình ảnh và tệp PDF bằng C#

Hãy để chúng tôi khám phá việc tạo tài nguyên bảng câu hỏi OMR. Tại đây, chúng tôi sẽ lưu trữ các câu hỏi mẫu trong tệp TXT mà sau này sẽ được công cụ OMR sử dụng để tạo mẫu giấy câu hỏi OMR, hình ảnh và tệp PDF. Ngoài ra, sau đây là đánh dấu văn bản mà chúng tôi sẽ sử dụng làm đầu vào cho công cụ 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________________________________

Bây giờ chúng ta sẽ làm theo các bước sau với mã C# để tạo Bảng câu hỏi trắc nghiệm OMR:

  1. Khởi tạo công cụ OMR
  2. Gọi phương thức GenerateTemplate với đánh dấu văn bản
  3. Lưu bảng câu hỏi đầu ra OMR

Đoạn mã sau dựa trên các bước này cho biết cách tạo mẫu bảng câu hỏi OMR, hình ảnh và tệp PDF bằng C#:

// khởi tạo công cụ OMR
OmrEngine engine = new OmrEngine();

// tạo mẫu cuộc gọi cung cấp đường dẫn đến tệp txt có đánh dấu
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// kiểm tra trong trường hợp có lỗi
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// bạn có thể sử dụng một trong các cách tiếp cận sau
// lưu kết quả tạo: mẫu PDF và .omr
res.SaveAsPdf(testFolderPath , "Grid");
// lưu kết quả tạo: hình ảnh và mẫu .omr
res.Save(testFolderPath, "Grid");

Vì vậy, chúng tôi đã tạo ra giấy câu hỏi OMR như trong ảnh chụp màn hình sau. Bạn có thể phân phối giấy tờ bằng cách in tệp PDF hoặc hình ảnh được tạo theo yêu cầu của bạn.

mẫu OMR

Thực hiện OMR trên hình ảnh Bảng trả lời bong bóng trắc nghiệm bằng C#

Cuối cùng, bạn sẽ thu thập các câu trả lời trên phiếu trả lời bong bóng đã tạo và sau đó chụp ảnh hoặc quét chúng để thực hiện OMR bằng C#. Trong ví dụ này, chúng ta hãy xem xét hình ảnh mẫu sau đây. Aspose.OMR for .NET API sẽ tạo tệp được phân tách bằng dấu phẩy (CSV) làm đầu ra của việc thực hiện OMR.

tạo omr

Chúng ta hãy làm theo các bước sau để thực hiện OMR bằng C#:

  1. Chỉ định đường dẫn tệp mẫu
  2. Chỉ định đường dẫn tệp hình ảnh được quét
  3. Khởi tạo TemplateProcessor
  4. Nhận dạng hình ảnh bằng phương pháp RecognizeImage
  5. Viết đầu ra CSV trong tệp TXT

Đoạn mã dưới đây cho thấy cách thực hiện OMR trên hình ảnh bảng trả lời bong bóng trắc nghiệm trong C#:

string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };

// chuẩn bị đầu vào và đầu ra
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// lệnh gọi API OMR thực tế
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");

for (int i = 0; i < UserImages.Length; i++)
{
    string imagePath = Path.Combine(testFolderPath, UserImages[i]);
    string csvResult = templateProcessor.RecognizeImage(imagePath).GetCsv();

    File.WriteAllText(Path.Combine(outputPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"), csvResult);
    Console.WriteLine("Result exported. Path: " + Path.Combine(testFolderPath, Path.GetFileNameWithoutExtension(UserImages[i]) + ".csv"));
}

Ảnh chụp màn hình sau đây cho thấy mức độ chính xác và hiệu quả của tệp CSV đầu ra được tạo bằng Aspose.OMR for .NET API. Thông tin CSV này hiện có thể được xử lý thêm theo thiết kế hệ thống của bạn.

thực hiện omr

Sự kết luận

Tóm lại, chúng ta đã học cách tạo bảng câu hỏi và sau đó thực hiện các thao tác OMR để đánh dấu hình ảnh bảng câu trả lời bong bóng bằng C#. Việc tạo các trang OMR này và sau đó thực hiện các thao tác OMR trên ảnh rất hữu ích trong các phương pháp nghiên cứu khác nhau. Hơn nữa, trong trường hợp có bất kỳ thắc mắc hoặc thắc mắc nào, bạn có thể liên hệ với chúng tôi qua Diễn đàn hỗ trợ miễn phí.

Xem thêm