Optyczne rozpoznawanie znaków (OMR) to technologia, którą można wykorzystać do odczytu i wyodrębnienia danych z obrazów oznaczonych formularzy. OMR jest powszechnie stosowany w standardowych testach, ankietach i głosowaniach, ale można go również używać w wielu innych zastosowaniach, takich jak ocenianie prac uczniów i śledzenie zasobów. W tym wpisie na blogu pokażemy jak utworzyć i odczytać arkusz OMR z kodem kreskowym w języku C#.
W tym artykule omówiono następujące tematy:
- Utwórz i odczytaj OMR za pomocą kodu kreskowego - C# API
- Utwórz arkusz OMR z kodem kreskowym
- Przeczytaj arkusz OMR z kodem kreskowym
- Darmowe zasoby edukacyjne
Twórz i czytaj OMR za pomocą kodu kreskowego - API C#
Wykorzystamy Aspose.OMR for .NET API do utworzenia i odczytania arkusza OMR z kodem kreskowym w języku C#. Umożliwia programistom szybkie i łatwe projektowanie, renderowanie i rozpoznawanie ręcznie wypełnianych arkuszy odpowiedzi, ankiet, aplikacji i podobnych formularzy w aplikacjach .NET.
Proszę pobierz bibliotekę DLL interfejsu API lub zainstaluj ją za pomocą NuGet.
PM> Install-Package Aspose.OMR
Utwórz arkusz OMR z kodem kreskowym w C#
Możemy łatwo utworzyć plik szablonu OMR (.omr) i obraz arkusza za pomocą prostych znaczników tekstowych, wykonując poniższe kroki:
- Utwórz instancję klasy OmrEngine.
- Następnie pobierz obiekt GenerationResult, wywołując metodę GenerateTemplate() podając jako argument ścieżkę do pliku tekstowego.
- Na koniec wywołaj metodę Save(), aby zapisać wygenerowany obraz i plik szablonu .omr na dysku lokalnym.
Poniższy przykładowy kod pokazuje, jak utworzyć arkusz OMR z kodem kreskowym przy użyciu języka C#.
// Katalog plików wejściowych i wyjściowych
string dataDir = "C:\\Files\\";
// Zainicjuj silnik
OmrEngine engine = new OmrEngine();
GenerationResult res = engine.GenerateTemplate(Path.Combine(dataDir, "OMRTestWithBarcode.txt"));
// Sprawdź w przypadku błędów
if (res.ErrorCode != 0)
{
Console.WriteLine("ERROR: " + res.ErrorCode + ": " + res.ErrorMessage);
}
// Zapisz wynik generacji: obraz i szablon .omr
res.Save(dataDir, "OMRTestWithBarcode");
Możesz dodatkowo sprawdzić następujący prosty znacznik tekstowy używany do tworzenia szablonu OMR:
?barcode=AsposeWebsite
value=aspose.com
barcode_type=qr
qr_version=1
x=1900
y=250
height=360
?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
?text= Answer sheet section
?answer_sheet=MainQuestions
elements_count=12
columns_count=4
?text=Sign________________________________
Proszę pobierz wygenerowany szablon OMR tutaj.
Przeczytaj arkusz OMR z kodem kreskowym w C#
Operacje OMR możemy wykonać na wypełnionym zeskanowanym obrazie arkusza OMR z kodem kreskowym i wyodrębnić dane w pliku CSV. W tym celu potrzebujemy przygotowanego szablonu OMR (.omr) oraz obrazu (formularze/arkusze wypełniane przez użytkownika). Aby odczytać arkusz OMR z kodem kreskowym i wyodrębnić dane w formacie CSV, wykonaj poniższe czynności.
- Utwórz instancję klasy OmrEngine.
- Wywołaj metodę GetTemplateProcessor() i zainicjuj obiekt klasy TemplateProcessor. Jako argument przyjmuje ścieżkę pliku szablonu OMR.
- Pobierz obiekt RecognitionResult, wywołując metodę Recognize() ze ścieżką obrazu jako argumentem.
- Następnie uzyskaj wyniki rozpoznawania w postaci ciągów CSV za pomocą metody GetCsv().
- Na koniec zapisz wynik CSV jako plik CSV na dysku lokalnym.
Poniższy przykładowy kod pokazuje, jak odczytać i wyodrębnić dane z arkusza OMR z kodem kreskowym w języku C#.
// Ten przykład kodu demonstruje, jak wykonać OMR na obrazie i wyodrębnić dane
// Ścieżka pliku szablonu OMR
string TemplateName = @"OMRTestWithBarcode.omr";
string UserImage = @"OMRTestWithBarcode.png";
// Ścieżka plików wejściowych i wyjściowych
string dataDir = "C:\\Files\\";
string templatePath = Path.Combine(dataDir, TemplateName);
// Zainicjuj silnik OMR
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");
// Uzyskaj wyniki w formacie CSV
string imagePath = Path.Combine(dataDir, UserImage);
string csvResult = templateProcessor.Recognize(imagePath).GetCsv();
// Zapisz plik CSV
File.WriteAllText(Path.Combine(dataDir, Path.GetFileNameWithoutExtension(UserImage) + ".csv"), csvResult);
Console.WriteLine("Result exported. Path: " + Path.Combine(dataDir, Path.GetFileNameWithoutExtension(UserImage) + ".csv"));
Console.WriteLine(csvResult);
Zdobądź bezpłatną licencję
Możesz uzyskać bezpłatną licencję tymczasową, aby wypróbować bibliotekę bez ograniczeń ewaluacyjnych.
Aspose.OMR for .NET – zasoby edukacyjne
Oprócz wyodrębniania danych OMR z obrazów, możesz dowiedzieć się więcej o Aspose.OMR i poznać inne funkcje biblioteki, korzystając z poniższych zasobów:
- Przewodnik programisty
- Darmowe aplikacje internetowe
- Odniesienie do API
- Poradniki i artykuły z instrukcjami
Wniosek
W tym artykule dowiedzieliśmy się, jak utworzyć i odczytać arkusz OMR z kodem kreskowym w języku C#. Widzieliśmy również, jak wyodrębnić i zapisać dane OMR w formacie CSV. Wykonując kroki opisane w tym artykule, możesz wykorzystać Aspose.OMR i opracować własne aplikacje OMR. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.