Grooper.IP.BoxDetection

Detects checkboxes in an image and reads their check state. This command generates layout data needed for optical mark recognition (OMR) extractors such as Anchored OMR and OMR Reader. It can be executed via one of the activities listed below. Note that each of these activities has a 'Layout Disposition' property which must be set properly for layout data to be saved.

* In most cases it is best to generate OMR layout data by using a Box Removal command during pre-OCR image cleanup. This will generate the layout data need by OMR extractors, and has the added benfit of improving OCR accuracy.


Inherits from: Grooper.IP.IpCommand

Constructors

Signature Description
New ()
New (Owner As ConnectedObject)
Parameters
Owner
          Type: ConnectedObject
          

Fields

Field Name Field Type Description
Database As Grooper.GrooperDb Grooper.GrooperDb

Properties

Property Name Property Type Description
BinarizationSettings Grooper.IP.Binarize Specifies the method used to binarize color and grayscale input images. Review the 'Binarized' diagnostic image when tuning this property. The objective is to generate an image where the lines to be removed are clearly defined.
CommandTypeName System.String The type of IP command.
Filtering Grooper.IP.BoxDetection.FilteringLevel Specifies how aggressively the image will be filtered prior to box detection. Review the "Filtered" diagnostic image when tuning this property. Applying a median cross filter prior to box detection can help smooth out edges and remove imperfections which may interfere with box detection.Can be one of the following values:
  • None: Median cross filtering is disabled.
  • Low: A 3x3 median cross filter will be applied.
  • High: A 5x5 median cross filter will be applied.
HasReferenceProperties System.Boolean Returns true if the object has properties which reference Grooper Node objects.
IsEmpty System.Boolean Returns true if all properties with a ViewableAttribute are set to their default value.
IsWriteable System.Boolean Returns true if the object is writable, or false if it is not.
MaximumAspectRatio System.Double The maximum aspect ratio of any blob to be considered a checkbox. Defines how "short and fat" checkboxes can be. The aspect ratio of a blob is calculated as width / height.
  • An aspect ratio of 100% represents a perfectly square blob.
  • A aspect ratio 125% represents a blob where the width is 125% of the height.
  • A aspect ratio 200% represents a blob where the width is 200% of the height.
MaximumBorderThickness System.Double The maximum thickness of the rectangular border, expressed as a percentage of the box size.
MinimumAspectRatio System.Double The minimum aspect ratio of any blob to be considered a checkbox. Defines how "tall and skinny" checkboxes can be. The aspect ratio of a blob is calculated as width / height:
  • An aspect ratio of 100% represents a perfectly square blob.
  • A aspect ratio 75% represents a blob where the width is 75% of the height.
  • A aspect ratio 50% represents a blob where the width is 50% of the height.
Owner Grooper.ConnectedObject Returns the node that owns the connected object, if any.
OwnerNode Grooper.GrooperNode Returns the node that owns the connected object, if any.
Root Grooper.GrooperRoot Returns the root node
SizeRange Grooper.IP.UnitRange The range size of checkboxes to be removed. Specifies the minimum size and maximum size of a checkbox, on either axis. An blob having a width or height less than the minimum or greater than the maximum will be excluded as a potential box.
SupportedFormats System.String The pixel formats supported by this command.
SupportedPixelFormats System.Collections.Generic.IEnumerable(Of T) Returns a list of supported pixel formats of images that can be processed by the IP Command.

Methods

Method Name Description
Apply(Image As GrooperImage, DiagMode As Boolean) As IpCommandResult
Parameters
Image
          Type: GrooperImage
          
 
DiagMode
          Type: Boolean
          
ApplyAtalaCommand(cmd As ImageCommand, Image As GrooperImage) As AtalaIpResult
Parameters
cmd
          Type: ImageCommand
          
 
Image
          Type: GrooperImage
          
ApplyCommand(Image As GrooperImage) As IpCommandResult
Parameters
Image
          Type: GrooperImage
          
ApplyImage(Image As GrooperImage) As GrooperImage
Parameters
Image
          Type: GrooperImage
          
GetProperties() As PropertyDescriptorCollection
GetReferences() As List(Of GrooperNode) Returns a list of GrooperNode objects referenced in the properties of this object.
IsPropertyEnabled(PropertyName As String) As Nullable(Of Boolean) Defines whether a property is currently enabled.
Parameters
PropertyName
          Type: String
          The name of the property to determine the enabled state for.
IsPropertyVisible(PropertyName As String) As Nullable(Of Boolean) Defines whether a property is currently visible.
Parameters
PropertyName
          Type: String
          The name of the property to determine the visible state for.
IsType(Type As Type) As Boolean Returns true if the object is of the type specified, or if it derives from the type specfied.
Parameters
Type
          Type: Type
          The type to check.
ReadBoxes(BinImage As GrooperImage, OriginalImage As GrooperImage, Result As BoxDetectionResult)
Parameters
BinImage
          Type: GrooperImage
          
 
OriginalImage
          Type: GrooperImage
          
 
Result
          Type: BoxDetectionResult
          
Serialize() As String Serializes the object.
SetDatabase(Database As GrooperDb) Sets the database connection of the object.
Parameters
Database
          Type: GrooperDb
          
SetOwner(Owner As ConnectedObject, SkipInitialization As Boolean) Sets the owner of the connected object with another object that implements the IConnected interface.
Parameters
Owner
          Type: ConnectedObject
          
 
SkipInitialization
          Type: Boolean
          
ToString() As String Returns a string value representation of the connected object.
ValidateProperties() As ValidationErrorList Validates the properties of the object, returning a list of validation errors.