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:
- Inicializovat motor OMR
- Zavolejte metodu GenerateTemplate s textovým označením
- 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](images/Grid-724x1024.png#center)
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](images/Sheet1-768x1024.jpg#center)
Při provádění OMR pomocí C# postupujte podle následujících kroků:
- Zadejte cestu k souboru šablony
- Zadejte cestu k souboru naskenovaného obrázku
- Inicializovat TemplateProcessor
- Rozpoznejte obrázky metodou RecognizeImage
- 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](images/OCR-answer-sheet-1.png#center)
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.