←Select platform

FeretsDiameterCommand Class

Summary

Computes the Feret's diameter of an object (the maximum distance between the points of the perimeter of the region), and finds its end points.

Syntax
C#
VB
C++
public class FeretsDiameterCommand 
Public Class FeretsDiameterCommand  
public ref class FeretsDiameterCommand  

Remarks
  • This command calculates the Feret's Diameter (caliper length), the longest distance between any two points along the boundary. This is equivalent to the minimum diameter of a tube through which this object can pass.
  • This command does not support signed data images.

Example

Run the FeretsDiameterCommand on an image.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Effects; 
 
public void FeretsDiameterCommandExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"Cannon.jpg")); 
 
   // Prepare the command 
   LeadRect rcRect = new LeadRect(image.Width / 4, image.Height / 4, image.Width * 3 / 4, image.Height * 3 / 4); 
   image.AddEllipseToRegion(null, rcRect, RasterRegionCombineMode.Set); 
 
   RegionContourPointsCommand contourcommand = new RegionContourPointsCommand(null); 
   if (contourcommand != null) 
      contourcommand.Run(image); 
 
   FeretsDiameterCommand command = new FeretsDiameterCommand(contourcommand.Points); 
   command.Run(); 
 
   MessageBox.Show(string.Format("Results\nFirstIndex : {0}\nSecondIndex: {1}\nDiameter : {2}", command.FirstIndex, command.SecondIndex, command.FeretsDiameter), "Ferets Diameter Test Results"); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Effects 
 
Public Sub FeretsDiameterCommandExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg")) 
 
   ' Prepare the command 
   Dim rcRect As LeadRect = New LeadRect(leadImage.Width \ 4, leadImage.Height \ 4, leadImage.Width * 3 \ 4, leadImage.Height * 3 \ 4) 
   leadImage.AddEllipseToRegion(Nothing, rcRect, RasterRegionCombineMode.Set) 
 
   Dim contourcommand As RegionContourPointsCommand = New RegionContourPointsCommand(Nothing) 
   contourcommand.Run(leadImage) 
 
   Dim command As FeretsDiameterCommand = New FeretsDiameterCommand(contourcommand.Points) 
   command.Run() 
 
   MessageBox.Show(String.Format("ResultsFirstIndex :{0}" & Environment.NewLine & "SecondIndex: {1}" & Environment.NewLine & "Diameter : {2}", command.FirstIndex, command.SecondIndex, command.FeretsDiameter), "Ferets Diameter Test Results") 
 
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.2019.3.11
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2019 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Effects Assembly