Browse our Products

                                                  compile(group: 'com.aspose', name: 'aspose-omr', version: '23.3')
<dependency org="com.aspose" name="aspose-omr" rev="23.3">
    <artifact name="aspose-omr" ext="jar"/>
libraryDependencies += "com.aspose" % "aspose-omr" % "23.3"

Java API to Perform OMR


Home | Product Page | Docs | Demos | API Reference | Examples | Blog | Search | Free Support | Temporary License

Aspose.OMR for Java is a Java class library that provides API to recognize optical marks from OMR digitized sheet images. It can be used to recognize optical marks in a variety of image formats like BMP, JPG, TIF, TIFF, GIF. The API allows capturing human-marked data from document forms such as surveys, questionnaires, multiple-choice examination papers, and other tests. With this solution, it is possible to recognize scanned images and even photos with high accuracy. Recognition is based on a template markup which contains a graphical mapping of the elements to be recognized from the scanned images.

OMR API Features

  • Recognition of scanned images and photos.
  • Ability to process rotated and perspective (side viewed) images.
  • Recognize data from tests, exams, questionnaires, surveys etc.
  • High accuracy rate & ability to export the results in CSV and JSON file format.
  • Create OMR templates from text markup.

Save OMR Results As


Read Images for OMR


Supported Environments

  • Microsoft Windows: Windows Desktop & Server (x86, x64)
  • macOS: Mac OS X
  • Linux: Ubuntu, OpenSUSE, CentOS, and others
  • Java Versions: J2SE 7.0 (1.7), J2SE 8.0 (1.8) or above

Get Started

Aspose.OMR Java APIs are hosted at the Aspose Repository. You can easily use Aspose.OMR for Java API directly in your Maven projects with simple configurations. For the detailed instructions please visit Installing Aspose.OMR for Java from Maven Repository documentation page.

Perform OMR operation on Images using Java

// For complete examples and data files, please go to
String TemplateName = "Sheet.omr";
String[] UserImages = new String[] { "Sheet1.jpg", "Sheet2.jpg" };
String[] UserImagesNoExt = new String[] { "Sheet1", "Sheet2" };

String sourceDirectory = Utils.getSourceDirectory();
String outputDirectory = Utils.combine(Utils.getOutputDirectory(), "Result");
String templatePath = Utils.combine(Utils.getSourceDirectory(), TemplateName);

// initialize engine and get template processor providing path to the .omr file
OmrEngine engine = new OmrEngine();
TemplateProcessor templateProcessor = engine.getTemplateProcessor(templatePath);
System.out.println("Template loaded.");

// images loop
for (int i = 0; i < UserImages.length; i++) {
    // path to the image to be recognized
    String imagePath = Utils.combine(sourceDirectory, UserImages[i]);
    System.out.println("Processing image: " + imagePath);

    // recognize image and receive result
    RecognitionResult result = templateProcessor.recognizeImage(imagePath);

    // export results as csv string
    String csvResult = result.getCsv();

    String json = result.getJson();

    // save csv to the output folder
    PrintWriter wr = new PrintWriter(new FileOutputStream(Utils.combine(outputDirectory, UserImagesNoExt[i] + ".csv")), true);

Home | Product Page | Docs | Demos | API Reference | Examples | Blog | Search | Free Support | Temporary License

VersionRelease Date
24.5May 7, 2024
23.12December 21, 2023
23.11November 3, 2023
23.5May 12, 2023
23.3March 16, 2023
23.1January 30, 2023
22.12December 24, 2022
19.12January 3, 2020
2.3.0March 26, 2015
aspose-omr-23.3.jar12 MB
aspose-omr-23.3.pom1 KB