LEADTOOLS OMR (Optical Mark Recognition) Module extends the functionality of LEADTOOLS SDKs by providing properties, methods, and events for easily incorporating fast, automated, and accurate optical mark recognition into your application. Optical Mark Recognition is used in surveys, polls, academic exams and official applications, to recognize the bubbles that the applicant fills in to indicate their selections. 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 as an add-on module to extend the functionality of the LEADTOOLS Document Imaging toolkit and the LEADTOOLS OCR engines by providing properties, methods, and events for easily incorporating the OMR engine into your applications.
For background and full details, see:
http://www.leadtools.com/SDK/Document/Document-Addon-OMR.htm
The printed frame should at least be 50 x 50 pixels to be recognized properly. Also the printed frame needs to be noticeable (This is easily accomplished by setting the scanner brightness.)
OMR is automated, very fast and accurate. It also have multiple options for different types of applications.
OMR options include "Frame detection options" and "Mark recognition sensitivity". For more information refer to the IOcrOmrOptions interfacce.
"Mark recognition sensitivity" specifies how sensitive OMR will be to filling marks. (Highest, High, Low and Lowest). For example: if the applicant filled the frames with a small ticks then highest mark recognition sensitivity should be set. But if the application or exam requires the applicant to fill the frame completely, then lowest mark recognition sensitivity should be set.
Also if the printed frames are empty and the applicant supposed to fill them by a simple mark, then highest mark recognition sensitivity is recommended.
(
And if the printed frames contain letters or Numbers and the applicant supposed to fill them completely, then Lowest mark recognition sensitivity is recommended.
(
All the LEADTOOLS .NET OCR engines support OMR. However, there is no support for auto-recognizing OMR fields currently. Instead, you should do the following:
Add an OcrZone object to the page zones collection (IOcrPage.Zones). Set the following properties of the zone:
Property OcrZone.Bounds The rectangle surrounding the zone in page coordinates OcrZone.FillMethod Set to OcrZoneFillMethod.Omr OcrZone.RecognitionModule Set to OcrZoneRecognitionModule.Omr Repeat for every OMR on the page
Perform OCR recognition on the page using IOcrPage.Recognize
After the recognition process is complete, you can inspect the following properties of the zones you added to get the OMR results:
Property Value OcrZone.OmrState One or more OcrOmrZoneState enumeration members that indicate the after-recognition state (filled or unfilled) of the mark of this zone OcrZone.OmrConfidence A number between 0 and 100 (where 100 is maximum confidence) that indicate the after-recognition confidence this IOcrEngine has in the accuracy of the OcrZone.OmrState value of the zone.
You can also use the IOcrOmrOptions interface to control how the LEADTOOLS OCR engine performs OMR recognition. With this interface, you can:
Change the frame detection method using the IOcrOmrOptions.FrameDetectionMethod property. Frames stand for the checkbox that may exist around OMR fields. Change the sensitivity of the OMR detection engine using the IOcrOmrOptions.Sensitivity property. Change the characters to use as a replacement for unfilled and filled OMR marks in the output document (for example, in a PDF file) using the IOcrOmrOptions.GetStateRecognitionCharacter and IOcrOmrOptions.SetStateRecognitionCharacter methods.
To use OMR in LEADTOOLS, you need a special key to unlock the OMR capabilities, for more information, refer to Unlocking Special LEAD Features.
For an example on using OMR in LEADTOOLS, refer to IOcrOmrOptions.
Reference
IntroductionGetting Started (Guide to Example Programs)
LEADTOOLS OCR .NET Assemblies
Programming with LEADTOOLS .NET OCR
An Overview of OCR Recognition Modules
Creating an OCR Engine Instance
Starting and Shutting Down the OCR Engine
OCR Spell Language Dictionaries
Working with OCR Languages
Working With OCR User Dictionaries
Working with OCR Pages
Working with OCR Zones
Recognizing OCR Pages
OCR Confidence Reporting
OCR Languages and Spell Checking
OCR Engine-Specific Settings
OCR Tutorial - Working with Pages
OCR Tutorial - Recognizing Pages
OCR Tutorial - Adding and Painting Zones
OCR Tutorial - Working with Recognition Results
OCR Tutorial - Scanning to Searchable PDF