.NET OMR Reader & Parser APIs

Perform OMR operations to recognize data from photos & scans of commonly used image format.

  Download Free Trial
omr net omr

Aspose.OMR for .NET


Aspose.OMR for .NET is an optical marks recognition API to recognize various types of answer sheets, including tests, assessments, surveys, quizzes, MCQ papers, feedback forms - any type of document that includes bubbles as input. API supports creating and reading OMR forms and works with photos and scans in popular image formats and provides output in various formats. 

By integrating OMR API, developers can create OMR sheets for tests and surveys and recognize them quickly and accurately.


Advanced .NET OMR Formats Manipulation API Features



Recognition of scanned images and photos


Process rotated and perspective images.


Recognize data from tests, exams, questionnaires, surveys.


High accuracy rate.


GUI for correcting complex cases.


Save results to CSV format.

How OMR API Works

Designed with user needs in mind, Aspose.OMR for .NET is great omr software to solve daily tasks. It takes minimum effort to set up the solution and get the results, regardless of the application field. Highly customizable template generation allows creating custom OMR sheet for any business case.


Simple sheets for test, exams or assessments or more complex papers with IDs, text questions and multiple choice questions, Aspose.OMR for .NET can handle it all. It is perfect omr software for teachers since minimum programming skills are required to create and recognize omr forms.


Conduct surveys of any kind using Aspose.OMR: customer satisfaction surveys, evaluation surveys, public opinions, etc.

Create your own template

Aspose.OMR for .NET API provides methods to generate OMR templates from text description. Using this feature developers can create highly customizable nice looking omr sheets ready for print. API supports several types of elements, including text, choice box (question), answer sheet (several columns of questions), grid (complex values that consist of similar sections).

No need to start from empty list! Take a look at demonstration markups and generated images for a good understanding of generation capabilities and things you can start on. For more details on features and settings you can check our documentation.

            // path to the txt markup file
            string markupPath = "Survey01Markup.txt";

            // initialize omr engine
            OmrEngine engine = new OmrEngine();

            // call generation method and get result: image and template (.omr file)
            GenerationResult result = engine.GenerateTemplate(markupPath);

            // path to the folder where the results will be saved
            string outputFolder = "OmrTemplates";

            // the name of the generated template and image
            string templateName = "Survey01";

            // save results
            result.Save(outputFolder, templateName);

Recognize OMR sheets

Aspose.OMR for .NET main feature is a recognition. API can recognize photos and scans in multiple image formats, including JPEG, PNG, GIF, TIFF, BMP. In order to recognize images OMR engine requires .omr file, which is a template that describes position and content of the form. Generation provides template with each created form and we offer GUI application for creating template from any user image.

Recognition process is fast and accurate and takes just a couple of seconds per image, depending on the image quality and size. This allows processing large numbers of forms in short amount of time.

The recognition results can be saved as JSON, XML or CSV files.

            // path to the .omr file
            string templatePath = "MyTest1.omr";

            // initialize engine and get template processor providing path to the .omr file
            OmrEngine engine = new OmrEngine();
            TemplateProcessor templateProcessor = engine.GetTemplateProcessor(templatePath);

            // path to the filled omr form image
            string imagePath = "MyTest1Photo1.jpg";

            // call recognition method and get the result
            RecognitionResult result = templateProcessor.RecognizeImage(imagePath);

            // path to the results file
            string exportPath = "Photo1Results.csv";

            // export results as csv string
            File.WriteAllText(exportPath, result.GetCsv());

Easy to use

Aspose.OMR offers an intuitive API with obvious methods signatures. There is no need to spend hours reading the documentation or trying to figure out the code. Simple yet functional, API can be used in different scenarios. Demo materials that include code samples and demonstration templates can be launched out of the box to showcase software capabilities and workflow.


Support and Learning Resources


Aspose.OMR offers individual OMR processing APIs for other popular development environments as listed below: