←Select platform

Is this page helpful?

In this page

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:\LEADTOOLS21\Resources\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:\LEADTOOLS21\Resources\Images" 
End Class 
Requirements

Target Platforms

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

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