Optical Mark Recognition, zkráceně OMR, se často používá k hodnocení dotazníků, průzkumů a dalších standardů sběru informací. V tomto článku se můžete naučit, jak vytvořit a zkontrolovat OMR otázky a bublinové odpovědi pomocí jazyka C# v aplikaci .NET. Krátce prozkoumáme následující přístupy:

API pro tvorbu a kontrolu šablon OMR – instalace Vytvořte šablonu dotazníku OMR, obrázek a soubor PDF pomocí C# Proveďte OMR na obrázcích bublinových odpovědí s více volbami pomocí C#

OMR Template Creator and Checker API – instalace

Pro vytváření šablon OMR a provádění operací OMR v aplikacích C# nebo VB.NET musíme nejprve nainstalovat Aspose.OMR for .NET API. Můžete si jej snadno stáhnout z New Releases nebo pomocí následujícího příkazu NuGet:

Install-Package Aspose.OMR -Version 20.6.0

Proto jsme nyní připraveni přistoupit k vytváření zdrojů listů s otázkami s výběrem odpovědí pomocí API pomocí C#:

Vytvořte šablonu, obrázek a soubor PDF OMR pomocí C#

Pojďme prozkoumat vytváření zdrojů listu s otázkami OMR. Zde uložíme vzorové otázky v souboru TXT, který bude později využit motorem OMR k vytvoření šablony papíru s otázkami OMR, obrázku a souboru PDF. Dále je zde textové označení, které budeme používat jako vstup pro motor 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________________________________

Nyní budeme postupovat podle těchto kroků s kódem C#, abychom vytvořili OMR dotazovací list:

  1. Inicializovat motor OMR
  2. Zavolejte metodu GenerateTemplate s textovým označením
  3. Uložit výstupní list s otázkami OMR

Následující fragment kódu je založen na těchto krocích, které ukazují, jak vytvořit šablonu listu s otázkami OMR, obrázek a soubor PDF pomocí C#:

// inicializovat OMR engine
OmrEngine engine = new OmrEngine();

// generování šablony volání poskytující cestu k souboru txt s označením
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// zkontrolujte v případě chyb
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// můžete použít kterýkoli z následujících přístupů
// uložit výsledek generování: šablona PDF a .omr
res.SaveAsPdf(testFolderPath , "Grid");
// uložit výsledek generování: obrázek a šablonu .omr
res.Save(testFolderPath, "Grid");

Vytvořili jsme tedy papír s otázkami OMR, jak je znázorněno na následujícím snímku obrazovky. Příspěvky můžete distribuovat vytištěním vygenerovaného souboru PDF nebo obrázku podle vašich požadavků.

Šablona OMR

Provádějte OMR na obrázcích s bublinovými odpověďmi s více volbami pomocí C#

Nakonec byste odpovědi shromáždili na vygenerovaných bublinových odpovědních listech a poté zachytili obrázky nebo je naskenovali pro provedení OMR pomocí C#. V tomto příkladu se podívejme na následující ukázkový obrázek. Aspose.OMR for .NET API vytvoří čárkami oddělený soubor (CSV) jako výstup provádění OMR.

vytvořit omr

Při provádění OMR pomocí C# postupujte podle následujících kroků:

  1. Zadejte cestu k souboru šablony
  2. Zadejte cestu k souboru naskenovaného obrázku
  3. Inicializovat TemplateProcessor
  4. Rozpoznejte obrázky metodou RecognizeImage
  5. Zapište výstup CSV do souboru TXT

Níže uvedený úryvek kódu ukazuje, jak provést OMR na obrázcích s odpověďmi v bublině s více možnostmi v C#:

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

// příprava vstupu a výstupu
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// skutečné volání 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"));
}

Následující snímek obrazovky ukazuje, jak efektivně a přesně je výstupní soubor CSV generován pomocí Aspose.OMR for .NET API. Tyto informace CSV lze nyní dále zpracovávat podle návrhu vašeho systému.

provést omr

Závěr

Stručně řečeno, naučili jsme se, jak vytvářet listy s otázkami a později provádět operace OMR pro označování obrázků v odpovědních listech pomocí C#. Toto vytváření listů OMR a následné provádění operací OMR na snímcích je velmi užitečné v různých výzkumných metodách. Navíc v případě jakýchkoli obav nebo dotazů se na nás můžete obrátit prostřednictvím Free Support Forums.

Viz také