FormFix uses models, templates, and an OMR processor to specify and perform OMR on forms, fields, and field sets. It then stores and reports back the OMR results. The models and templates define OMR segments and bubbles within a field. The OMR processor performs the OMR analysis. It has a set of properties which control the analysis, which can be written to or read from a stream. After that, the OMR results are aggregated and values returned for the bubbles, segments, and fields.
Beginning in FormFix 5, a new OMR processing mechanism is added which is easier to use and has less configuration. The processing mechanism is identified using the RecognitionEngine property of the OmrProcessor. For new OMR fields added in FormFix 5 or later, the RecognitionEngine property will be "SingleThreshold". This is discussed in greater detail (below) under the OmrProcessor section.
Models and Templates
The OmrBubbleModel is used as a template to define the OMR field bubble for analysis.
- Value - Specifies a character or string of characters to define the Bubble Value object. If the bubble is determined to be marked by analysis, this value will return in the result. The value size cannot be greater than 512 bytes or unfavorable results may occur.
The OmrSegmentModel is used as a template to define the OMR field segment for analysis.
OMR Processor
The OmrProcessor is the backbone of the OMR analysis. With this object you can analyze your field, Read and Write to and from a stream, perform analysis comparisons and define and store many of the necessary properties. See Define OMR Bubbles, Segments, and Fields and Guidelines & Adjustments for Marked/Unmarked Analysis for more information. The OmrProcessor's methods and properties are further defined below:
Example of a defined area outlined for OMR analysis.
Example Bubble Shape, Circle
Example Bubble Shape, Rectangle
Example showing a five column single-mark field
Example of a multi-mark field
Examples of a single field with horizontal segments (In the first image, set the Read Direction to Normal and the rows will be read top-to-bottom. The second image is a field that appears sideways on the form; set the Read Direction to Normal to read the rows top-to-bottom to get the entered number. The third image shows the field oriented the other way; set its Read Direction to Reverse to read the rows bottom-to-top to get the entered number.)
Example of a single field with vertical segments (In the first image, set the Read Direction to Normal and the columns will be read left-to-right. The second image is a field that appears sideways on the form; set the Read Direction to Normal to read the columns left-to-right (from 1 to 8). The third image shows the field oriented the other way; set its Read Direction to Reverse to read the columns right-to-left (from 1 to 8).)
New Properties
- RecognitionEngine - Defines the OMR processing mechanism to be used from the RecognitionEngine enumeration. The default value is SingleThreshold.
- Threshold - Used by the default OMR processing mechanism to set the level above which a bubble will be considered marked.
- TooManyMarksSegmentResult - A string which is returned when multiple bubbles are detected as marked in a single-mark segment.
OMR Results
The bubble result of OMR analysis processing.
- Area - The rectangular coordinates in pixels which define the bubble result.
New Properties
- MarkDensity - Indicates the mark density of the bubble.
- Value – Indicates the value of the bubble when marked; corresponds to OmrBubbleModel.Value.
- MarkState – Defines whether the bubble is marked or not, from the MarkState enumeration.
The OmrFieldResult object is the result of OMR analysis on a field.
- Confidence - Defines the result analysis confidence value for the field.
- Segments - A collection of OmrSegmentResult objects that contains the field segment level analysis result data.
- Text - The text string result from the field analysis.
The OmrSegmentResult object contains the result of OMR analysis on a field segment.
See Also