←Select platform

WatershedCommand Class

Summary

Separates the image into different segments using the Watershed algorithm.

Syntax
C#
VB
Objective-C
C++
Java
public class WatershedCommand : RasterCommand 
Public Class WatershedCommand  
   Inherits RasterCommand 
@interface LTWatershedCommand : LTRasterCommand 
public class WatershedCommand extends RasterCommand 
public ref class WatershedCommand : public RasterCommand   

Remarks
  • Each segment's pixels has the same color. The Watershed algorithm treats an image as if it were a topographic surface. The dark areas are basins. The light areas are the ridges around the basins.
  • The user is responsible for determining the number of output segments and the location of each segment in the input array.
  • This command supports 8, 16-bit grayscale and colored images and 24, 32-bit colored images.
  • This command does not support 32-bit grayscale images.
  • This command supports signed/unsigned images.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
public void WatershedCommandExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   //Load an image 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")); 
 
   LeadPoint[][] pointsArray = new LeadPoint[4][]; 
 
   for (int idx = 0; idx < 4; idx++) 
      pointsArray[idx] = new LeadPoint[2]; 
 
   // Set starting point and end point for each segment path. 
   pointsArray[0][0] = new LeadPoint(35, 100); 
   pointsArray[0][1] = new LeadPoint(35, 200); 
 
   pointsArray[1][0] = new LeadPoint(180, 115); 
   pointsArray[1][1] = new LeadPoint(300, 115); 
 
   pointsArray[2][0] = new LeadPoint(235, 220); 
   pointsArray[2][1] = new LeadPoint(260, 220); 
 
   pointsArray[3][0] = new LeadPoint(180, 330); 
   pointsArray[3][1] = new LeadPoint(350, 330); 
 
   //Prepare the command 
   WatershedCommand command = new WatershedCommand(pointsArray); 
 
   //Apply  
   command.Run(image); 
} 
 
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 WatershedCommandExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   'Load an image 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")) 
 
   Dim pointsArray As LeadPoint()() = New LeadPoint(3)() {} 
 
   For idx As Integer = 0 To 3 
      pointsArray(idx) = New LeadPoint(1) {} 
   Next idx 
 
   ' Set starting point and end point for each segment path. 
   pointsArray(0)(0) = New LeadPoint(35, 100) 
   pointsArray(0)(1) = New LeadPoint(35, 200) 
 
   pointsArray(1)(0) = New LeadPoint(180, 115) 
   pointsArray(1)(1) = New LeadPoint(300, 115) 
 
   pointsArray(2)(0) = New LeadPoint(235, 220) 
   pointsArray(2)(1) = New LeadPoint(260, 220) 
 
   pointsArray(3)(0) = New LeadPoint(180, 330) 
   pointsArray(3)(1) = New LeadPoint(350, 330) 
 
   'Prepare the command 
   Dim command As WatershedCommand = New WatershedCommand(pointsArray) 
 
   'Apply  
   command.Run(image) 
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