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 객관식 질문 시트를 만들 것입니다.
- OMR 엔진 초기화
- 텍스트 마크업으로 GenerateTemplate 메서드 호출
- 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 파일 또는 이미지를 인쇄하여 논문을 배포할 수 있습니다.
C#을 사용하여 객관식 거품 답안지 이미지에 OMR 수행
마지막으로 생성된 거품 답안지에서 응답을 수집한 다음 이미지를 캡처하거나 C#을 사용하여 OMR을 수행하기 위해 스캔합니다. 이 예에서는 다음 샘플 이미지를 고려해 보겠습니다. Aspose.OMR for .NET API는 OMR 수행의 출력으로 쉼표로 구분된(CSV) 파일을 생성합니다.
C#을 사용하여 OMR을 수행하려면 다음 단계를 따르십시오.
- 템플릿 파일 경로 지정
- 스캔한 이미지 파일 경로 지정
- TemplateProcessor 초기화
- RecognizeImage 방법으로 이미지 인식
- 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 작업을 수행하는 것은 다양한 연구 방법에 매우 유용합니다. 또한 우려 사항이나 문의 사항이 있는 경우 무료 지원 포럼을 통해 문의할 수 있습니다.