Performs processing on IRecognitionForm for all pages of the filled-in form and fields existing in the provided ITemplateForm.
public void Recognize(
ITemplateForm templateForm
)
templateForm
The template form object.
The results of recognizing the fields on this filled-in form can be accessed from the Field.Result property.
When Recognize method is invoked, all fields in the ITemplateForm are aligned and processed in the filled-in form.
Note
The following example is a snippet of a larger example project. To run the larger example project, follow the work flow laid out in the OMREngine example. You can also download the complete Visual Studio 2017 project.
using Leadtools;
using Leadtools.Barcode;
using Leadtools.Codecs;
using Leadtools.Forms.Processing.Omr;
using Leadtools.Forms.Processing.Omr.Fields;
using Leadtools.Ocr;
public static IRecognitionForm RecognizeForm(ITemplateForm template, OmrEngine engine)
{
string answerKey = Path.Combine(LEAD_VARS.ImagesDir, @"Forms\OMR Processing\Exam\answer-key.tif");
// create an IRecognitionForm which will contain the results of the recognition operation
IRecognitionForm answers = engine.CreateRecognitionForm();
answers.Name = "Answers";
using (RasterImage answerKeyImage = engine.EnginesObject.RasterCodecs.Load(answerKey))
{
// add each page in the image to the IRecognitionForm
for (int i = 0; i < answerKeyImage.PageCount; i++)
{
answerKeyImage.Page = i + 1;
answers.Pages.AddPage(answerKeyImage);
}
// this recognizes the IRecognitionForm against the specified template
answers.Recognize(template);
// finally, print out the results of the recognition operation
Console.Write("Answers:");
for (int i = 0; i < answers.Pages[0].Fields.Count; i++)
{
OmrField field = answers.Pages[0].Fields[i] as OmrField;
if (field != null)
{
OmrFieldResult omrFieldResult = (OmrFieldResult)field.Result;
Console.Write(omrFieldResult.Text + "\t");
}
}
Console.WriteLine();
}
return answers;
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
}