OMR(Optical Mark Recognition)은 표시된 형태의 이미지에서 데이터를 읽고 추출하는 데 사용할 수 있는 기술입니다. OMR은 일반적으로 표준화된 시험, 설문 조사 및 투표에 사용되지만 학생 과제 채점 및 재고 추적과 같은 다양한 다른 응용 프로그램에도 사용할 수 있습니다. 이번 블로그 게시물에서는 C#에서 바코드가 포함된 OMR 시트를 만들고 읽는 방법을 보여 드리겠습니다.
이 문서에서는 다음 주제를 다룹니다.
바코드로 OMR 생성 및 읽기 - C# API
Aspose.OMR for .NET API를 사용하여 C#에서 바코드가 포함된 OMR 시트를 생성하고 읽어보겠습니다. 이를 통해 개발자는 손으로 작성한 답안지, 설문 조사, 응용 프로그램 및 .NET 응용 프로그램의 유사한 양식을 빠르고 쉽게 디자인, 렌더링 및 인식할 수 있습니다.
API의 DLL을 다운로드하거나 NuGet을 사용하여 설치하세요.
PM> Install-Package Aspose.OMR
C#에서 바코드를 사용하여 OMR 시트 만들기
아래 단계에 따라 간단한 텍스트 마크업을 사용하여 OMR 템플릿(.omr) 파일과 시트 이미지를 쉽게 만들 수 있습니다.
- OmrEngine 클래스의 인스턴스를 만듭니다.
- 그런 다음 텍스트 파일 경로를 인수로 사용하여 GenerateTemplate() 메서드를 호출하여 GenerationResult 개체를 가져옵니다.
- 마지막으로 Save() 메서드를 호출하여 생성된 이미지와 .omr 템플릿 파일을 로컬 디스크에 저장합니다.
다음 코드 샘플은 C#을 사용하여 바코드가 포함된 OMR 시트를 만드는 방법을 보여줍니다.
// 입력 및 출력 파일 디렉터리
string dataDir = "C:\\Files\\";
// 엔진 초기화
OmrEngine engine = new OmrEngine();
GenerationResult res = engine.GenerateTemplate(Path.Combine(dataDir, "OMRTestWithBarcode.txt"));
// 오류가 있는 경우 확인
if (res.ErrorCode != 0)
{
Console.WriteLine("ERROR: " + res.ErrorCode + ": " + res.ErrorMessage);
}
// 생성 결과 저장: 이미지 및 .omr 템플릿
res.Save(dataDir, "OMRTestWithBarcode");
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________________________________
여기에서 생성된 OMR 템플릿을 다운로드하시기 바랍니다.
C#에서 바코드를 사용하여 OMR 시트 읽기
바코드가 있는 OMR 시트의 채워진 스캔 이미지에 대해 OMR 작업을 수행하고 CSV 파일로 데이터를 추출할 수 있습니다. 이를 위해서는 준비된 OMR 템플릿(.omr)과 이미지(사용자가 입력한 양식/시트)가 필요합니다. 바코드가 포함된 OMR 시트를 읽고 CSV로 데이터를 추출하려면 아래 단계를 따르세요.
- OmrEngine 클래스의 인스턴스를 만듭니다.
- GetTemplateProcessor() 메서드를 호출하고 TemplateProcessor 클래스 객체를 초기화합니다. OMR 템플릿 파일 경로를 인수로 사용합니다.
- 이미지 경로를 인수로 사용하여 Recognize() 메서드를 호출하여 RecognitionResult 개체를 가져옵니다.
- 그런 다음 GetCsv() 메서드를 사용하여 인식 결과를 CSV 문자열로 가져옵니다.
- 마지막으로 CSV 결과를 로컬 디스크에 CSV 파일로 저장합니다.
다음 코드 샘플은 C#에서 바코드가 있는 OMR 시트에서 데이터를 읽고 추출하는 방법을 보여줍니다.
// 이 코드 예제는 이미지에서 OMR을 수행하고 데이터를 추출하는 방법을 보여줍니다.
// OMR 템플릿 파일 경로
string TemplateName = @"OMRTestWithBarcode.omr";
string UserImage = @"OMRTestWithBarcode.png";
// 입력 및 출력 파일 경로
string dataDir = "C:\\Files\\";
string templatePath = Path.Combine(dataDir, TemplateName);
// OMR 엔진 초기화
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);
Console.WriteLine("Template loaded.");
// CSV로 결과 얻기
string imagePath = Path.Combine(dataDir, UserImage);
string csvResult = templateProcessor.Recognize(imagePath).GetCsv();
// 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);
무료 라이센스 받기
무료 임시 라이선스를 받아 평가 제한 없이 라이브러리를 사용해 볼 수 있습니다.
.NET용 Aspose.OMR – 학습 리소스
이미지에서 OMR 데이터를 추출하는 것 외에도 Aspose.OMR에 대해 자세히 알아보고 아래 리소스를 사용하여 라이브러리의 다른 기능을 탐색할 수 있습니다.
결론
이번 글에서는 C#에서 바코드가 포함된 OMR 시트를 만들고 읽는 방법을 배웠습니다. 또한 OMR 데이터를 CSV 형식으로 추출하고 저장하는 방법도 살펴보았습니다. 이 문서에 설명된 단계를 따르면 Aspose.OMR을 활용하고 자신만의 OMR 애플리케이션을 개발할 수 있습니다. 모호한 점이 있으면 언제든지 무료 지원 포럼에 문의해 주세요.