←Select platform

OtsuThresholdCommand Class

Summary

Performs image segmentation and color reduction using Otsu clustering on grayscale images.

Syntax

C#
VB
Java
Objective-C
WinRT C#
C++
public class OtsuThresholdCommand : RasterCommand 
public sealed class OtsuThresholdCommand : Leadtools.Imageprocessing.Leadtools.ImageProcessing.IRasterCommand   
@interface LTOtsuThresholdCommand : LTRasterCommand 
public class OtsuThresholdCommand extends RasterCommand 
function Leadtools.ImageProcessing.Core.OtsuThresholdCommand() 

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:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Core 
      Leadtools.Examples.Support.SetLicense() 
 
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:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.18
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Core Assembly