Optical Mark Recognition, w skrócie OMR, jest często używany do oceny kwestionariuszy, ankiet i innych standardów gromadzenia informacji. Z tego artykułu dowiesz się, jak tworzyć i sprawdzać arkusze pytań OMR i odpowiedzi w dymkach przy użyciu języka C# w aplikacji .NET. Pokrótce omówimy następujące podejścia:
OMR Template Creator and Checker API – Instalacja Utwórz szablon arkusza pytań OMR, obraz i plik PDF za pomocą C# Wykonaj OMR na obrazach arkusza odpowiedzi w dymkach wielokrotnego wyboru, używając C#
OMR Template Creator and Checker API – Instalacja
Aby tworzyć szablony OMR i wykonywać operacje OMR w aplikacjach C# lub VB.NET, najpierw musimy zainstalować Aspose.OMR for .NET API. Możesz łatwo pobrać go z New Releases lub za pomocą następującego polecenia NuGet:
Install-Package Aspose.OMR -Version 20.6.0
W związku z tym jesteśmy teraz gotowi do tworzenia zasobów arkuszy pytań wielokrotnego wyboru za pomocą interfejsu API przy użyciu języka C#:
Utwórz szablon arkusza pytań OMR, obraz i plik PDF za pomocą C#
Przyjrzyjmy się tworzeniu zasobów arkuszy pytań OMR. Tutaj będziemy przechowywać przykładowe pytania w pliku TXT, który zostanie później wykorzystany przez silnik OMR do stworzenia szablonu papieru z pytaniami OMR, obrazu i pliku PDF. Ponadto poniżej znajduje się znacznik tekstowy, którego będziemy używać jako danych wejściowych dla silnika 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________________________________
Teraz wykonamy następujące kroki z kodem C#, aby utworzyć arkusz pytań wielokrotnego wyboru OMR:
- Zainicjuj silnik OMR
- Wywołaj metodę GenerateTemplate ze znacznikami tekstowymi
- Zapisz arkusz pytań wyjściowych OMR
Poniższy fragment kodu jest oparty na tych krokach, które pokazują, jak utworzyć szablon arkusza pytań OMR, obraz i plik PDF za pomocą C#:
// zainicjować silnik OMR
OmrEngine engine = new OmrEngine();
// generowanie szablonu wywołania z podaniem ścieżki do pliku txt ze znacznikami
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));
// sprawdzić w przypadku błędów
if (res.ErrorCode != 0)
{
Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}
// możesz użyć jednego z poniższych podejść
// zapisz wynik generowania: szablon PDF i .omr
res.SaveAsPdf(testFolderPath , "Grid");
// zapisz wynik generowania: obraz i szablon .omr
res.Save(testFolderPath, "Grid");
Stworzyliśmy więc arkusz pytań OMR, jak pokazano na poniższym zrzucie ekranu. Możesz rozpowszechniać dokumenty, drukując wygenerowany plik PDF lub obraz zgodnie z własnymi wymaganiami.
Wykonaj OMR na obrazach arkuszy odpowiedzi w dymkach wielokrotnego wyboru za pomocą C#
Na koniec możesz zebrać odpowiedzi na wygenerowanych arkuszach odpowiedzi w dymkach, a następnie przechwycić obrazy lub zeskanować je w celu wykonania OMR przy użyciu języka C#. W tym przykładzie rozważmy następujący przykładowy obraz. Aspose.OMR for .NET API utworzy plik rozdzielany przecinkami (CSV) jako wynik wykonywania OMR.
Wykonajmy następujące kroki, aby wykonać OMR przy użyciu C#:
- Określ ścieżkę pliku szablonu
- Określ ścieżkę pliku zeskanowanego obrazu
- Zainicjuj TemplateProcessor
- Rozpoznaj obrazy metodą RecognizeImage.
- Zapisz dane wyjściowe CSV w pliku TXT
Poniższy fragment kodu pokazuje, jak wykonać OMR na obrazach arkuszy odpowiedzi z dymkami wielokrotnego wyboru w języku C#:
string TemplateName = @"Sheet.omr";
string[] UserImages = new string[] { "Sheet1.jpg" };
// przygotowanie wejść i wyjść
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);
// rzeczywiste wywołania API OMR
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"));
}
Poniższy zrzut ekranu pokazuje, jak wydajnie i dokładnie generowany jest wyjściowy plik CSV za pomocą Aspose.OMR for .NET API. Te informacje CSV można teraz dalej przetwarzać zgodnie z projektem systemu.
Wniosek
W skrócie nauczyliśmy się tworzyć arkusze pytań, a później wykonywać operacje OMR w celu oznaczania dymków obrazów arkuszy odpowiedzi za pomocą C#. To tworzenie arkuszy OMR, a następnie wykonywanie operacji OMR na obrazach jest bardzo pomocne w różnych metodach badawczych. Ponadto w przypadku jakichkolwiek wątpliwości lub pytań możesz skontaktować się z nami za pośrednictwem bezpłatnych forów pomocy technicznej.