←Select platform

ObjectCounterCommand Class

Summary

Gets the number of black objects in a binary image.

Syntax
C#
VB
C++
public class ObjectCounterCommand : RasterCommand 
Public Class ObjectCounterCommand  
   Inherits RasterCommand 
public ref class ObjectCounterCommand : public RasterCommand   

Remarks
  • This command retrieves the number of black objects on a white background in a binary image. The behavior of this command can be further modified by using an Event Handler that handles the ObjectCounterCommandEventArgs.
  • This command works only on 1-bit black and white images.
  • If a region is selected, only the selected region will be changed by this command. If no region selected, the entire image will be processed.
  • This command does not support signed data images.

Example

Runs the ObjectCounterCommand on an image.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
public void ObjectCounterCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"ImageProcessingDemo\Image4.tif")); 
 
   // Prepare the command 
   ObjectCounterCommand command = new ObjectCounterCommand(); 
   command.ObjectCounter += new EventHandler<ObjectCounterCommandEventArgs>(ObjectCounterEvent_S1); 
   command.Run(image); 
 
   MessageBox.Show("ObjectCountis" + "( " + command.Count + " )"); 
 
} 
 
private void ObjectCounterEvent_S1(object sender, ObjectCounterCommandEventArgs e) 
{ 
   int RegionPixelSize; 
   RegionPixelSize = 0; 
 
   for (int i = e.ObjectRectangle.Left; i < e.ObjectRectangle.Right; i++) 
   { 
      for (int j = e.ObjectRectangle.Top; j < e.ObjectRectangle.Bottom; j++) 
      { 
         if (e.ObjectData[i - e.ObjectRectangle.Left][j - e.ObjectRectangle.Top] == 1) 
         { 
            RegionPixelSize++; 
         } 
      } 
   } 
 
   MessageBox.Show("Region size in pixels is" + "( " + RegionPixelSize + " )"); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Core 
 
Public Sub ObjectCounterCommandExample() 
   ' Load an image 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "ImageProcessingDemo\\Image4.tif")) 
 
   ' Prepare the command 
   Dim command As ObjectCounterCommand = New ObjectCounterCommand() 
   AddHandler command.ObjectCounter, AddressOf ObjectCounterEvent_S1 
   command.Run(image) 
 
   MessageBox.Show("ObjectCountis" + "( " + command.Count.ToString() + " )") 
 
End Sub 
 
Private Sub ObjectCounterEvent_S1(ByVal sender As Object, ByVal e As ObjectCounterCommandEventArgs) 
 
   Dim nRegionPixelSize As Integer 
   Dim i As Integer 
   Dim j As Integer 
   nRegionPixelSize = 0 
   For i = e.ObjectRectangle.Left To e.ObjectRectangle.Right - 1 
      For j = e.ObjectRectangle.Top To e.ObjectRectangle.Bottom - 1 
         nRegionPixelSize = nRegionPixelSize + 1 
      Next j 
   Next i 
   MessageBox.Show("Region size in pixels is " + "( " + nRegionPixelSize.ToString() + " )") 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

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

Leadtools.ImageProcessing.Core Assembly