Optical Mark Recognition, förkortat OMR, används ofta för att bedöma frågeformulär, undersökningar och andra standarder för informationsinsamling. I den här artikeln kan du lära dig hur du skapar och kontrollerar OMR-frågor och bubblasvarsblad med C#-språket i en .NET-applikation. Vi kommer kortfattat att utforska följande tillvägagångssätt:

OMR Template Creator and Checker API – Installation Skapa OMR-frågebladsmall, bild och PDF-fil med C# [Utför OMR på bilder med flervalsbubblor med C#](#avsnitt 3)

OMR Template Creator och Checker API – Installation

För att skapa OMR-mallar och utföra OMR-operationer i C#- eller VB.NET-applikationer måste vi först installera Aspose.OMR för .NET API. Du kan enkelt ladda ner den från New Releases eller med följande NuGet-kommando:

Install-Package Aspose.OMR -Version 20.6.0

Därför är vi nu redo att fortsätta för att skapa flervalsfrågeformulärsresurser med API:t med C#:

Skapa OMR frågebladsmall, bild och PDF-fil med C#

Låt oss utforska hur vi skapar OMR frågeformulärsresurser. Här kommer vi att lagra exempelfrågor i en TXT-fil som senare kommer att användas av OMR-motorn för att skapa OMR-frågepappersmall, bild och PDF-fil. Dessutom följer textuppmärkningen som vi kommer att använda som indata för OMR-motorn:

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

Nu kommer vi att följa dessa steg med C#-kod för att skapa OMR Multiple Choice Question Sheet:

  1. Initiera OMR-motor
  2. Anropa metoden GenerateTemplate med textuppmärkning
  3. Spara frågeformulär för OMR-utgång

Följande kodavsnitt baseras på dessa steg som visar hur man skapar OMR frågeformulärsmall, bild och PDF-fil med C#:

// initiera OMR-motorn
OmrEngine engine = new OmrEngine();

// generering av anropsmall ger sökväg till txt-filen med markering
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// kontrollera vid fel
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// du kan använda någon av följande metoder
// spara generationsresultat: PDF- och .omr-mall
res.SaveAsPdf(testFolderPath , "Grid");
// spara generationsresultat: bild och .omr-mall
res.Save(testFolderPath, "Grid");

Så vi har skapat OMR frågepapper som visas i följande skärmdump. Du kan distribuera papper genom att skriva ut den genererade PDF-filen eller bilden enligt dina krav.

OMR mall

Utför OMR på bilder med flervalsbubblor med C#

Slutligen skulle du samla in svaren på genererade bubbelsvarsblad och sedan ta bilder, eller skanna dem för att utföra OMR med C#. I det här exemplet, låt oss överväga följande exempelbild. Aspose.OMR för .NET API kommer att skapa en kommaseparerad (CSV) fil som utdata för att utföra OMR.

skapa omr

Låt oss följa dessa steg för att utföra OMR med C#:

  1. Ange sökvägen till mallfilen
  2. Ange sökvägen till den skannade bildfilen
  3. Initiera TemplateProcessor
  4. Känn igen bilder med metoden RecognizeImage
  5. Skriv CSV-utdata i TXT-fil

Kodavsnittet nedan visar hur man utför OMR på flervalsbubblor i C#:

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

// input och output förberedelse
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// faktiska OMR API-anrop
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"));
}

Följande skärmdump visar hur effektivt och exakt utdata-CSV-filen genereras med Aspose.OMR för .NET API. Denna CSV-information kan nu vidarebehandlas enligt din systemdesign.

utföra omr

Slutsats

I ett nötskal har vi lärt oss hur man skapar frågeblad och senare utför OMR-operationer för att markera bilder med bubblor med C#. Detta OMR-ark att skapa och sedan utföra OMR-operationer på bilder är till stor hjälp i olika forskningsmetoder. Dessutom, vid eventuella problem eller frågor kan du kontakta oss via Gratis supportforum.

Se även