OMR(Optical Mark Recognition)은 설문조사, 설문지 및 객관식 시험지를 확인하는 데 자주 사용됩니다. 양식을 처리하는 빠르고 정확한 방법입니다. 이 기사에서는 Java를 사용하여 OMR 템플릿을 만들고 채워진 답안지를 확인하는 방법을 배웁니다.
OMR 템플릿 생성 및 OMR 작업 수행을 위한 Java API
Aspose.OMR for Java는 PNG, GIF, JPEG, TIFF, 등 이미지. API는 OMR 템플릿 생성도 지원합니다. 다운로드 섹션에서 API를 직접 다운로드하거나 다음 Maven 구성을 사용하여 설치할 수 있습니다.
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
</repositories>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-omr</artifactId>
<version>19.12</version>
<classifier>jdk6</classifier>
</dependency>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-omr</artifactId>
<version>19.12</version>
<classifier>javadoc</classifier>
</dependency>
Java를 사용하여 OMR 템플릿 및 답안지 이미지 생성
이 섹션에서는 간단한 텍스트 마크업을 사용하여 OMR 템플릿 파일과 답안지 이미지를 생성하는 방법을 배웁니다. 텍스트 마크업을 TXT 파일에 저장하고 Java 코드에서 이를 사용하여 OMR 템플릿을 생성합니다. 아래는 이 예에서 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________________________________
이제 텍스트 마크업이 준비되었으므로 아래 단계에 따라 OMR 템플릿을 생성합니다.
- 먼저 OmrEngine 클래스의 인스턴스를 만듭니다.
- OmrEngine.generateTemplate(String markupPath) 메서드를 사용하여 텍스트 마크업을 처리합니다.
- GenerationResult.save(String folder, String name) 메서드를 사용하여 OMR 템플릿과 이미지를 저장합니다.
다음 샘플 코드는 Java에서 텍스트 마크업을 사용하여 OMR 템플릿을 생성하는 방법을 보여줍니다.
// 소스 및 출력 디렉토리 경로
String sourceDirectory = "SourceDirectory\\OMR\\Generation\\";
String outputDirectory = "OutputDirectory\\";
// OmrEngine 클래스의 인스턴스 생성
OmrEngine engine = new OmrEngine();
// 텍스트 마크업을 사용하여 템플릿 생성
GenerationResult res = engine.generateTemplate(sourceDirectory + "Grid.txt");
// 오류 발생 시 확인
if (res.getErrorCode() != 0)
{
System.out.println("ERROR CODE: " + res.getErrorCode());
}
// 생성 결과 저장: 이미지 및 .omr 템플릿
res.save(outputDirectory, "Grid");
위의 코드는 OMR 템플릿 파일과 답안지 이미지를 생성합니다. 다음은 생성된 답안지의 이미지입니다.
Java를 사용하여 거품형 답안지에 OMR 작업 수행
생성된 답안지에 응답을 수집한 후 이미지를 캡처한 다음 OMR 작업을 수행할 수 있습니다. 이 예에서는 두 개의 이미지에 대해 OMR 작업을 수행합니다. 첫 번째는 아래에 나와 있습니다.
다음은 이미지에 OMR 작업을 수행하는 단계입니다.
- OmrEngine 클래스의 인스턴스를 만듭니다.
- OmrEngine.getTemplateProcessor(String templatePath) 메서드를 사용하여 템플릿 파일을 로드합니다.
- TemplateProcessor.recognizeImage(String imagePath) 메서드를 사용하여 이미지를 처리합니다.
- RecognitionResult.getCsv() 메서드를 사용하여 CSV 형식으로 결과를 가져옵니다.
다음 샘플 코드는 Java를 사용하여 이미지에 대해 OMR 작업을 수행하는 방법을 보여줍니다.
// 소스 및 출력 디렉토리 경로
String sourceDirectory = "SourceDirectory\\OMR\\";
String outputDirectory = "OutputDirectory\\";
String TemplateName = "Sheet.omr";
String[] UserImages = new String[] { "Sheet1.jpg", "Sheet2.jpg" };
String[] UserImagesNoExt = new String[] { "Sheet1", "Sheet2" };
// OmrEngine 클래스의 인스턴스 만들기
OmrEngine engine = new OmrEngine();
// 템플릿 파일 로드
TemplateProcessor templateProcessor = engine.getTemplateProcessor(sourceDirectory + "Sheet.omr");
System.out.println("Template loaded.");
// 이미지 반복
for (int i = 0; i < UserImages.length; i++) {
// 이미지 인식 및 결과 수신
RecognitionResult result = templateProcessor.recognizeImage(sourceDirectory + UserImages[i]);
// 결과를 csv 문자열로 내보내기
String csvResult = result.getCsv();
// csv를 출력 폴더에 저장
PrintWriter wr = new PrintWriter(new FileOutputStream(outputDirectory + UserImagesNoExt[i] + ".csv"), true);
wr.println(csvResult);
}
다음은 위의 코드로 생성된 첫 번째 이미지에 대한 CSV 출력입니다.
Element Name,Value,
MainQuestions1,"A"
MainQuestions2,"B"
MainQuestions3,"D"
MainQuestions4,"C"
MainQuestions5,"C"
MainQuestions6,"A"
MainQuestions7,"B"
MainQuestions8,"B"
MainQuestions9,"C"
MainQuestions10,"B"
MainQuestions11,"D"
MainQuestions12,"A"
MainQuestions13,"C"
MainQuestions14,"B"
MainQuestions15,"D"
MainQuestions16,"A"
MainQuestions17,"C"
MainQuestions18,"B"
MainQuestions19,"A"
MainQuestions20,"A"
MainQuestions21,"A"
MainQuestions22,"C"
MainQuestions23,"D"
MainQuestions24,"B"
MainQuestions25,"A"
MainQuestions26,"C"
MainQuestions27,"B"
MainQuestions28,"D"
MainQuestions29,"C"
MainQuestions30,"A"
MainQuestions31,"C"
MainQuestions32,"B"
MainQuestions33,"D"
MainQuestions34,"A"
MainQuestions35,"C"
MainQuestions36,"B"
MainQuestions37,"D"
MainQuestions38,"C"
MainQuestions39,"B"
MainQuestions40,"A"
MainQuestions41,"D"
MainQuestions42,"C"
MainQuestions43,"B"
MainQuestions44,"A"
MainQuestions45,"C"
MainQuestions46,"B"
MainQuestions47,"D"
MainQuestions48,"C"
MainQuestions49,"A"
MainQuestions50,"C"
MainQuestions51,"B"
MainQuestions52,"D"
MainQuestions53,"B"
MainQuestions54,"C"
MainQuestions55,"B"
MainQuestions56,"A"
MainQuestions57,"C"
MainQuestions58,"B"
MainQuestions59,"D"
MainQuestions60,"B"
MainQuestions61,"A"
MainQuestions62,"C"
MainQuestions63,"B"
MainQuestions64,"D"
MainQuestions65,"C"
MainQuestions66,"B"
MainQuestions67,"A"
MainQuestions68,"C"
MainQuestions69,"B"
MainQuestions70,"D"
MainQuestions71,"C"
MainQuestions72,"B"
MainQuestions73,"B"
MainQuestions74,"A"
MainQuestions75,"C"
MainQuestions76,"B"
MainQuestions77,"D"
MainQuestions78,"D"
MainQuestions79,"C"
MainQuestions80,"B"
ID,"27860000"
무료 라이선스 받기
무료 임시 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.
결론
이 기사에서는 Java를 사용하여 OMR 템플릿과 답안지 이미지를 생성하는 방법을 배웠습니다. 또한 이미지에 대해 OMR 작업을 수행하고 결과를 CSV로 얻는 방법을 배웠습니다. Aspose.OMR for Java는 공식 문서를 방문하여 자세히 살펴볼 수 있는 OMR 관련 작업을 위한 강력한 API입니다. API의 모든 측면에 대해 질문이 있는 경우 무료 지원 포럼을 통해 언제든지 문의하십시오.