←Select platform

SpaceBounds Property

Summary

The array of two rectangles for empty spaces in the text field.

Syntax
C#
C++/CLI
Python
public LeadRect[] SpaceBounds {get; set;} 
public:  
   property array<LeadRect^>^ SpaceBounds 
   { 
      array<LeadRect^>^ get() 
      void set(array<LeadRect^>^ value) 
   } 
SpaceBounds # get and set (TextField) 

Property Value

Array of two rectangles for empty spaces in the text field.

Remarks

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}.

Example
C#
Java
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(); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.3.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Core Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.