Optical Mark Recognition (OMR) is used to recognize the bubbles that are filled in to indicate selections on surveys, polls, academic exams, and official applications. Supported marks include tick marks, X's, lines, checkmarks, and scribbles. Supported shapes (or frames) include boxes, circles, and ellipses.
The OMR features are included in the LEADTOOLS OCR engines.
For background and full details, see:
LEADTOOLS OMR requires a special key to unlock OMR capabilities. For more information, refer to Unlocking Special LEAD Features.
OMR is automated, very fast, and accurate. It has multiple options for different types of applications.
OMR options include "Frame detection options" and "Mark recognition sensitivity." For more information refer to the IOcrOmrOptions interface.
The printed frame should be at least 50 x 50 pixels in order to be recognized properly. Also, the printed frame needs to be noticeable (This is easily accomplished by setting the scanner brightness.)
"Mark recognition sensitivity" specifies how sensitive OMR will be to filling marks. (Highest, High, Low, and Lowest). For example: For frames filled with small ticks, the mark recognition sensitivity should be set to the highest value. The highest value should also be set if the printed frames are empty and they should be recognized as being filled if simple marks are used. But if the application or exam requires the frames to be filled completely, the mark recognition sensitivity should be set to the lowest value. (See the figure below)
The lowest mark recognition sensitivity should also be used when the printed frames contain letters or numbers and the frames must be filled completely. (See the figure below)
Some types of OMR paper are designed to be used with specific types of hardware. Usually such paper contains bubbles with letters or numbers. The characters and bubbles are printed in red or light gray. (See the figure below)
The purpose of the characters and bubbles is to allow the hardware to recognize the color of these areas. As a result, when the paper is scanned, the bubbles and characters will drop out, leaving only the filled marks visible.
Although hardware-specific paper is generally not recommended for software solutions, there are steps that, when applied, ensure the most accurate results using such types of paper.
To make bubbles and characters scanning clearer, set the scanner brightness to high. This will cause the lighter color of the bubbles and characters to drop out. (See the figure below)
Another possibility is to set the scanner brightness to low. (See the figure below)
Note: Do NOT use auto-brightness settings when scanning hardware-specific paper, as doing so damages the frames (bubbles) and makes them faint. (See the figure below)
All the LEADTOOLS .NET OCR engines support OMR. However, only the LEADTOOLS OCR Module - LEAD Engine supports auto-detection of OMR zones during auto-zoning of the OCR page. For those engines that do not support OMR auto-detection, you should do the following:
Add an OcrZone object to the IOcrPage.Zones collection.
Set the following properties of the zone:
Set OcrZone.ZoneType to OcrZoneType.Omr.
Set OcrZone.Bounds to the rectangle surrounding the zone in page coordinates.
Repeat for every OMR on the page.
OcrCharacter.Code will contain the current OMR character used for "filled" and "unfilled" values as set by IOcrOmrOptions.SetStateRecognitionCharacter.
The following values are possible:
Value | Meaning |
---|---|
0 | Unfilled |
1 | Filled |
OcrCharacter.Confidence is a number between 0 and 100 (where 100 represents maximum confidence) that indicates the after-recognition confidence this IOcrEngine has in the accuracy of the state.
You can also use the IOcrOmrOptions interface to control how the LEADTOOLS OCR engine performs OMR recognition. With this interface, you can:
Note: Since all LEADTOOLS OCR engines use LEADTOOLS OMR, saving OMR results to engine native formats will not work (nothing will be saved). Instead, save the results to any of the LEADTOOLS document writer formats.
For an example on using OMR in LEADTOOLS, refer to IOcrOmrOptions.
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document