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:

  1. Zainicjuj silnik OMR
  2. Wywołaj metodę GenerateTemplate ze znacznikami tekstowymi
  3. 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.

szablon OMR

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.

stworzyć omr

Wykonajmy następujące kroki, aby wykonać OMR przy użyciu C#:

  1. Określ ścieżkę pliku szablonu
  2. Określ ścieżkę pliku zeskanowanego obrazu
  3. Zainicjuj TemplateProcessor
  4. Rozpoznaj obrazy metodą RecognizeImage.
  5. 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.

wykonać omr

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.

Zobacz też