OMR로 약칭되는 광학 마크 인식은 설문지, 설문 조사 및 기타 정보 수집 표준을 평가하는 데 자주 사용됩니다. 이 문서에서는 .NET 응용 프로그램에서 C# 언어를 사용하여 OMR 질문 및 거품 답안지를 만들고 확인하는 방법을 배울 수 있습니다. 다음 접근 방식을 간략하게 살펴보겠습니다.

OMR 템플릿 생성기 및 검사기 API – 설치 C#을 사용하여 OMR 문제지 템플릿, 이미지 및 PDF 파일 생성 C#을 사용하여 객관식 말풍선 답안지 이미지에 OMR 수행

OMR 템플릿 생성기 및 검사기 API – 설치

C# 또는 VB.NET 응용 프로그램에서 OMR 템플릿을 만들고 OMR 작업을 수행하려면 먼저 .NET API용 Aspose.OMR을 설치해야 합니다. New Releases 또는 다음 NuGet 명령을 사용하여 쉽게 다운로드할 수 있습니다.

Install-Package Aspose.OMR -Version 20.6.0

따라서 이제 C#을 사용하여 API로 객관식 질문 시트 리소스를 생성할 준비가 되었습니다.

C#을 사용하여 OMR 질문 시트 템플릿, 이미지 및 PDF 파일 만들기

OMR 질문 시트 리소스를 만드는 방법을 살펴보겠습니다. 여기에서 샘플 질문을 TXT 파일에 저장하여 나중에 OMR 엔진에서 OMR 문제지 템플릿, 이미지 및 PDF 파일을 만드는 데 사용할 것입니다. 또한 다음은 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________________________________

이제 C# 코드를 사용하여 다음 단계에 따라 OMR 객관식 질문 시트를 만들 것입니다.

  1. OMR 엔진 초기화
  2. 텍스트 마크업으로 GenerateTemplate 메서드 호출
  3. OMR 출력 질문 시트 저장

다음 코드 조각은 C#을 사용하여 OMR 질문 시트 템플릿, 이미지 및 PDF 파일을 만드는 방법을 보여주는 다음 단계를 기반으로 합니다.

// OMR 엔진 초기화
OmrEngine engine = new OmrEngine();

// 마크업이 있는 txt 파일에 대한 경로를 제공하는 템플릿 생성 호출
GenerationResult res = engine.GenerateTemplate(Path.Combine(testFolderPath, "Grid.txt"));

// 오류가 있는지 확인
if (res.ErrorCode != 0)
{
    Console.WriteLine("ERROR CODE: " + res.ErrorCode);
}

// 다음 접근 방식 중 하나를 사용할 수 있습니다.
// 생성 결과 저장: PDF 및 .omr 템플릿
res.SaveAsPdf(testFolderPath , "Grid");
// 생성 결과 저장: 이미지 및 .omr 템플릿
res.Save(testFolderPath, "Grid");

그래서 다음 스크린샷과 같이 OMR 문제지를 만들었습니다. 귀하의 요구사항에 따라 생성된 PDF 파일 또는 이미지를 인쇄하여 논문을 배포할 수 있습니다.

OMR 템플릿

C#을 사용하여 객관식 거품 답안지 이미지에 OMR 수행

마지막으로 생성된 거품 답안지에서 응답을 수집한 다음 이미지를 캡처하거나 C#을 사용하여 OMR을 수행하기 위해 스캔합니다. 이 예에서는 다음 샘플 이미지를 고려해 보겠습니다. Aspose.OMR for .NET API는 OMR 수행의 출력으로 쉼표로 구분된(CSV) 파일을 생성합니다.

옴을 생성

C#을 사용하여 OMR을 수행하려면 다음 단계를 따르십시오.

  1. 템플릿 파일 경로 지정
  2. 스캔한 이미지 파일 경로 지정
  3. TemplateProcessor 초기화
  4. RecognizeImage 방법으로 이미지 인식
  5. TXT 파일에 CSV 출력 쓰기

아래 코드 조각은 C#의 객관식 거품 답안지 이미지에 대해 OMR을 수행하는 방법을 보여줍니다.

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

// 입출력 준비
string testFolderPath = dataDir;
string templatePath = Path.Combine(testFolderPath, TemplateName);

// 실제 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"));
}

다음 스크린샷은 .NET API용 Aspose.OMR을 사용하여 출력 CSV 파일이 얼마나 효율적이고 정확하게 생성되는지 보여줍니다. 이제 이 CSV 정보를 시스템 설계에 따라 추가로 처리할 수 있습니다.

옴을 수행

결론

간단히 말해서, 우리는 문제 시트를 만드는 방법과 나중에 C#을 사용하여 거품 답안 이미지를 표시하는 OMR 작업을 수행하는 방법을 배웠습니다. 이 OMR 시트를 생성한 다음 이미지에 OMR 작업을 수행하는 것은 다양한 연구 방법에 매우 유용합니다. 또한 우려 사항이나 문의 사항이 있는 경우 무료 지원 포럼을 통해 문의할 수 있습니다.

또한보십시오