Aspose.OMR  for .NET

.NET OMR Reader & Parser APIs

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

  Download Free Trial

Aspose.OMR for .NET is a simple and practical OMR software for creating and recognizing answer sheets, tests, MCQ papers, quizzes, feedback forms, surveys, ballots - all types of forms. Our optical mark recognition API is super easy and allows you to design, create and recognize fully customizable forms with various question types, icons, barcodes and other elements.

No need for special scanners, papers, or other equipment - Aspose OMR uses advanced image processing algorithms to handle photos and scans with high accuracy. We provide the unique GUI tool to create mark-ups for your existing forms so that they can be recognized with Aspose.OMR software.

Advanced .NET OMR API Features


Recognize scans and photos


Process rotated and skewed images


Create and recognize answer sheets, tests, exams, ballots, questionnaires, surveys


Supports multiple fonts, colors, OMR elements


Generate OMR forms in PDF or PNG


High accuracy rate


GUI for correcting complex cases


Save results to CSV or JSON 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.

Aspose Answer Sheet example Aspose Test form example


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

Aspose Survey form example

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). Generated images can be saved as ready-to-print PDF files or PNG images.

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 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: