Optical Mark Recognition หรือที่เรียกโดยย่อว่า OMR มักใช้ในการประเมินแบบสอบถาม แบบสำรวจ และมาตรฐานการรวบรวมข้อมูลอื่นๆ ในบทความนี้ คุณสามารถเรียนรู้วิธีสร้างและตรวจสอบคำถาม OMR และกระดาษคำตอบโดยใช้ภาษา C# ในแอปพลิเคชัน .NET เราจะสำรวจแนวทางต่อไปนี้โดยสังเขป:

ผู้สร้างเทมเพลต OMR และ Checker API – การติดตั้ง สร้างเทมเพลตแผ่นคำถาม OMR รูปภาพ และไฟล์ PDF โดยใช้ C# ทำ OMR บนรูปภาพกระดาษคำตอบแบบหลายตัวเลือกโดยใช้ C#

ผู้สร้างเทมเพลต OMR และ Checker API – การติดตั้ง

สำหรับการสร้างเทมเพลต OMR และการดำเนินการ OMR ในแอปพลิเคชัน C# หรือ VB.NET ก่อนอื่นเราต้องติดตั้ง Aspose.OMR for .NET API คุณสามารถดาวน์โหลดได้ง่ายๆ จาก New Releases หรือตามคำสั่ง NuGet:

Install-Package Aspose.OMR -Version 20.6.0

ดังนั้น ตอนนี้เราพร้อมที่จะดำเนินการสร้างทรัพยากรแผ่นคำถามแบบปรนัยด้วย API โดยใช้ C#:

สร้างเทมเพลตแผ่นคำถาม OMR รูปภาพ และไฟล์ PDF โดยใช้ C#

ให้เราสำรวจการสร้างแหล่งข้อมูลแผ่นคำถาม OMR ที่นี่เราจะเก็บตัวอย่างคำถามไว้ในไฟล์ TXT ซึ่งเครื่องมือ OMR จะถูกใช้ในภายหลังเพื่อสร้างเทมเพลตกระดาษคำถาม OMR รูปภาพและไฟล์ PDF นอกจากนี้ ต่อไปนี้คือมาร์กอัปข้อความที่เราจะใช้เป็นอินพุตสำหรับเครื่องมือ 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________________________________

ตอนนี้เราจะทำตามขั้นตอนเหล่านี้ด้วยรหัส C # เพื่อสร้างเอกสารคำถามแบบเลือกตอบ OMR:

  1. เริ่มต้น เครื่องยนต์ OMR
  2. เรียกใช้เมธอด GenerateTemplate ด้วยมาร์กอัปข้อความ
  3. บันทึกแผ่นคำถามผลลัพธ์ OMR

ข้อมูลโค้ดต่อไปนี้อิงตามขั้นตอนเหล่านี้ซึ่งแสดงวิธีสร้างเทมเพลตแผ่นคำถาม รูปภาพ และไฟล์ PDF โดยใช้ C#:

// เริ่มต้นเครื่องยนต์ OMR
OmrEngine engine = new OmrEngine();

// การสร้างเทมเพลตการโทรให้เส้นทางไปยังไฟล์ txt พร้อมมาร์กอัป
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// ตรวจสอบในกรณีที่มีข้อผิดพลาด
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้
// บันทึกผลลัพธ์การสร้าง: เทมเพลต PDF และ .omr
res.SaveAsPdf(testFolderPath , "Grid");
// บันทึกผลลัพธ์การสร้าง: รูปภาพและเทมเพลต .omr
res.Save(testFolderPath, "Grid");

ดังนั้นเราจึงสร้างเอกสารคำถาม OMR ดังที่แสดงในภาพหน้าจอต่อไปนี้ คุณสามารถแจกจ่ายกระดาษโดยการพิมพ์ไฟล์ PDF หรือรูปภาพที่สร้างขึ้นตามความต้องการของคุณ

เทมเพลต OMR

ดำเนินการ OMR บนภาพกระดาษคำตอบแบบหลายตัวเลือกโดยใช้ C

สุดท้าย คุณจะต้องรวบรวมคำตอบบนกระดาษคำตอบฟองที่สร้างขึ้น จากนั้นจับภาพ หรือสแกนเพื่อทำการ OMR โดยใช้ C# ในตัวอย่างนี้ ให้เราพิจารณาภาพตัวอย่างต่อไปนี้ Aspose.OMR for .NET API จะสร้างไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค (CSV) เป็นเอาต์พุตของการดำเนินการ OMR

สร้าง omr

ให้เราทำตามขั้นตอนเหล่านี้เพื่อดำเนินการ OMR โดยใช้ C#:

  1. ระบุเส้นทางไฟล์เทมเพลต
  2. ระบุเส้นทางไฟล์ภาพที่สแกน
  3. เริ่มต้น TemplateProcessor
  4. จดจำรูปภาพด้วยวิธี RecognizeImage
  5. เขียนเอาต์พุต CSV ในไฟล์ TXT

ข้อมูลโค้ดด้านล่างแสดงวิธีดำเนินการ OMR บนภาพกระดาษคำตอบแบบหลายตัวเลือกใน C#:

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

// การเตรียมอินพุตและเอาต์พุต
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// การเรียก OMR API จริง
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"));
}

ภาพหน้าจอต่อไปนี้แสดงให้เห็นว่าไฟล์ CSV เอาต์พุตถูกสร้างขึ้นด้วย Aspose.OMR for .NET API ได้อย่างมีประสิทธิภาพและแม่นยำเพียงใด ข้อมูล CSV นี้สามารถประมวลผลเพิ่มเติมได้ตามการออกแบบระบบของคุณ

ดำเนินการ omr

บทสรุป

โดยสรุป เราได้เรียนรู้วิธีสร้างใบคำถามและดำเนินการ OMR ในภายหลังเพื่อทำเครื่องหมายรูปกระดาษคำตอบฟองโดยใช้ C# การสร้างชีต OMR นี้และการดำเนินการ OMR กับรูปภาพมีประโยชน์มากในวิธีการวิจัยต่างๆ นอกจากนี้ ในกรณีที่มีข้อกังวลหรือข้อสงสัย คุณสามารถติดต่อเราผ่านทาง ฟอรัมสนับสนุนฟรี

ดูสิ่งนี้ด้วย