The array of two rectangles for empty spaces in the text field.
public LeadRect[] SpaceBounds {get; set;}
public:
property array<LeadRect^>^ SpaceBounds
{
array<LeadRect^>^ get()
void set(array<LeadRect^>^ value)
}
SpaceBounds # get and set (TextField)
Array of two rectangles for empty spaces in the text field.
If the text field is not filled, the values of the two rectangles will be {0,0,0,0}.
The first rectangle is for the empty space (if one is found), on the top or the bottom of the filled area. If there is no empty space, the values of the rectangle will be {0,0,0,0}.
The second rectangle is for the empty space (if one is found), on the right of the filled area, and if there is no empty space the values of the rectangle will be {0,0,0,0}.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Core;
public void FindCandidateFormFieldsCommandExample()
{
RasterCodecs codecs = new RasterCodecs();
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"Forms\Forms to be Recognized\OMR\AnswerSheet_Pattern.jpg"), 0, Leadtools.Codecs.CodecsLoadByteOrder.Bgr, 1, 1);
FindCandidateFormFieldsCommand findFields = new FindCandidateFormFieldsCommand();
findFields.HorizontalLineMinimumLength = 10;
findFields.VerticalLineMinimumLength = 3;
findFields.Run(image);
TextField[] textFields = findFields.TextFieldAreas;
OMRField[] omrFields = findFields.OMRFieldAreas;
foreach (TextField field in textFields)
{
TextFieldType textFieldType = field.FieldType;
StringBuilder stringBuilder = new StringBuilder("** Text Field Properties **\n");
stringBuilder.AppendLine("Filled: " + field.IsFilled.ToString());
stringBuilder.AppendLine("Empty space, if there is any on the top or the bottom of the filled area: " + field.SpaceBounds[0].ToString());
stringBuilder.AppendLine("Empty space, if there is any on the right side of the filled area: " + field.SpaceBounds[1].ToString());
stringBuilder.AppendLine("TextFieldType: " + textFieldType.ToString());
stringBuilder.AppendLine("Bounds: " + field.Bounds.ToString());
stringBuilder.AppendLine("FilledAreaBounds: " + field.FilledAreaBounds.ToString());
System.Diagnostics.Debug.WriteLine(stringBuilder.ToString());
// Function TODO : Drawing rectangle field.Bounds
// Function TODO : Drawing rectangle field.FilledAreaBounds
}
foreach (OMRField field in omrFields)
{
if (field.FieldType == OMRFieldType.BoxOMR)
{
// Function TODO : Drawing rectangle field.UnFilledBound
}
else
{
// Function TODO : Drawing circle field.UnFilledBound
}
StringBuilder stringBuilder = new StringBuilder("** OMR Field Properties **\n");
stringBuilder.AppendLine("FilledBound: " + field.FilledBound.ToString());
stringBuilder.AppendLine("FilledConfidence: " + field.FilledConfidence.ToString());
stringBuilder.AppendLine("IsFilled: " + field.IsFilled.ToString());
stringBuilder.AppendLine("OMRConfidence: " + field.OMRConfidence.ToString());
stringBuilder.AppendLine("UnfilledBound: " + field.UnfilledBound.ToString());
System.Diagnostics.Debug.WriteLine(stringBuilder.ToString());
}
image.Dispose();
codecs.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import org.junit.*;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
import leadtools.*;
import leadtools.codecs.*;
import leadtools.imageprocessing.core.*;
public void findCandidateFormFieldsCommandExample() {
final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images";
RasterCodecs codecs = new RasterCodecs();
RasterImage image = codecs.load(
combine(LEAD_VARS_IMAGES_DIR, "Forms\\Forms to be Recognized\\OMR\\AnswerSheet_Pattern.jpg"), 0,
CodecsLoadByteOrder.BGR, 1, 1);
FindCandidateFormFieldsCommand findFields = new FindCandidateFormFieldsCommand();
findFields.setHorizontalLineMinimumLength((char) 10);
findFields.setVerticalLineMinimumLength((char) 3);
int flags = findFields.run(image);
assertTrue(flags != 0);
TextField[] textFields = findFields.getTextFieldAreas();
OMRField[] omrFields = findFields.getOMRFieldAreas();
for (TextField field : textFields) {
TextFieldType textFieldType = field.getFieldType();
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("** Text Field Properties **");
sBuilder.append("\nFilled: " + field.isFilled());
sBuilder.append("\nEmpty space, if there is any on the top or the bottom of the filled area: "
+ field.getSpaceBounds()[0].toString());
sBuilder.append("\nEmpty space, if there is any on the right side of the filled area: "
+ field.getSpaceBounds()[1].toString());
sBuilder.append("\nTextFieldType: " + textFieldType.toString());
sBuilder.append("\nBounds: " + field.getBounds().toString());
sBuilder.append("\nFilledAreaBound: " + field.getFilledAreaBounds().toString());
System.out.println(sBuilder.toString() + "\n");
}
for (OMRField field : omrFields) {
if (field.getFieldType() == OMRFieldType.BOX_OMR) {
// Function TODO : Drawing rectangle field.UnFilledBound
}
{
// Function TODO : Drawing circle field.UnFilledBound
}
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("** OMR Field Properties **");
sBuilder.append("\nFilledBound: " + field.getFilledBound().toString());
sBuilder.append("\nFilledConfidence: " + field.getFilledConfidence());
sBuilder.append("\nIsFilled: " + field.isFilled());
sBuilder.append("\nOMRConfidence: " + field.getOMRConfidence());
sBuilder.append("\nUnfilledBound: " + field.getUnfilledBound().toString());
System.out.println(sBuilder.toString());
}
image.dispose();
codecs.dispose();
}
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