←Select platform

OtsuThresholdCommand Class

Summary
Performs image segmentation and color reduction using Otsu clustering on grayscale images.
Syntax
C#
VB
Objective-C
C++
Java
public class OtsuThresholdCommand : RasterCommand 
Public Class OtsuThresholdCommand  
   Inherits RasterCommand 
@interface LTOtsuThresholdCommand : LTRasterCommand 
public class OtsuThresholdCommand extends RasterCommand 
public ref class OtsuThresholdCommand : public RasterCommand   
Remarks
  • This command works only with grayscale images. If the input image is colored it will be converted to a grayscale image.
  • Otsu clustering is performed by making each cluster as compact as possible so as to minimize overlap. If one adjusts a threshold one way, the spread of one cluster gets larger and the spread for the second cluster gets smaller. Different threshold values are tried until the one is found which produces the minimum combined spread.
  • Otsu thresholding is typically used as a way to binarize an image. It is best when used on an image that has a bimodal histogram (Clusters = 2).
  • This command supports 8, 16-bit grayscale images and 24, 32-bit colored images. Support for 16-bit grayscale is available in the Document/Medical Imaging toolkits.
  • This command supports signed/unsigned images.
Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Core; 
 
public void OtsuThresholdCommandExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   //Load an image 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, @"ImageProcessingDemo\NaturalFruits.jpg")); 
 
   //Prepare the command 
   OtsuThresholdCommand command = new OtsuThresholdCommand(); 
 
   //Apply  
   command.Clusters = 4; 
   command.Run(image); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS21\Resources\Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Core 
 
Public Sub OtsuThresholdCommandExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   'Load an image 
   Dim image As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "cannon.jpg")) 
 
   'Prepare the command 
   Dim command As OtsuThresholdCommand = New OtsuThresholdCommand() 
 
   'Apply  
   command.Clusters = 7 
   command.Run(image) 
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.Core Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2021 LEAD Technologies, Inc. All Rights Reserved.