C# Class AForge.Imaging.Filters.OtsuThreshold

Otsu thresholding.

The class implements Otsu thresholding, which is described in N. Otsu, "A threshold selection method from gray-level histograms", IEEE Trans. Systems, Man and Cybernetics 9(1), pp. 62–66, 1979.

This implementation instead of minimizing the weighted within-class variance does maximization of between-class variance, what gives the same result. The approach is described in this presentation.

The filter accepts 8 bpp grayscale images for processing.

Sample usage:

// create filter OtsuThreshold filter = new OtsuThreshold( ); // apply the filter filter.ApplyInPlace( image ); // check threshold value byte t = filter.ThresholdValue; // ...

Initial image:

Result image (calculated threshold is 97):

Inheritance: BaseInPlacePartialFilter
Show file Open project: holisticware-admin/MonoVersal.AForgeNET Class Usage Examples

Public Methods

Method Description
CalculateThreshold ( Bitmap image, Rectangle rect ) : int

Calculate binarization threshold for the given image.

The method is used to calculate binarization threshold only. The threshold later may be applied to the image using Threshold image processing filter.

CalculateThreshold ( BitmapData image, Rectangle rect ) : int

Calculate binarization threshold for the given image.

The method is used to calculate binarization threshold only. The threshold later may be applied to the image using Threshold image processing filter.

CalculateThreshold ( UnmanagedImage image, Rectangle rect ) : int

Calculate binarization threshold for the given image.

The method is used to calculate binarization threshold only. The threshold later may be applied to the image using Threshold image processing filter.

OtsuThreshold ( ) : System

Initializes a new instance of the OtsuThreshold class.

Protected Methods

Method Description
ProcessFilter ( UnmanagedImage image, Rectangle rect ) : void

Process the filter on the specified image.

Method Details

CalculateThreshold() public method

Calculate binarization threshold for the given image.

The method is used to calculate binarization threshold only. The threshold later may be applied to the image using Threshold image processing filter.

Source pixel format is not supported by the routine. It should be /// 8 bpp grayscale (indexed) image.
public CalculateThreshold ( Bitmap image, Rectangle rect ) : int
image System.Drawing.Bitmap Image to calculate binarization threshold for.
rect System.Drawing.Rectangle Rectangle to calculate binarization threshold for.
return int

CalculateThreshold() public method

Calculate binarization threshold for the given image.

The method is used to calculate binarization threshold only. The threshold later may be applied to the image using Threshold image processing filter.

Source pixel format is not supported by the routine. It should be /// 8 bpp grayscale (indexed) image.
public CalculateThreshold ( BitmapData image, Rectangle rect ) : int
image System.Drawing.Imaging.BitmapData Image to calculate binarization threshold for.
rect System.Drawing.Rectangle Rectangle to calculate binarization threshold for.
return int

CalculateThreshold() public method

Calculate binarization threshold for the given image.

The method is used to calculate binarization threshold only. The threshold later may be applied to the image using Threshold image processing filter.

Source pixel format is not supported by the routine. It should be /// 8 bpp grayscale (indexed) image.
public CalculateThreshold ( UnmanagedImage image, Rectangle rect ) : int
image UnmanagedImage Image to calculate binarization threshold for.
rect System.Drawing.Rectangle Rectangle to calculate binarization threshold for.
return int

OtsuThreshold() public method

Initializes a new instance of the OtsuThreshold class.
public OtsuThreshold ( ) : System
return System

ProcessFilter() protected method

Process the filter on the specified image.
protected ProcessFilter ( UnmanagedImage image, Rectangle rect ) : void
image UnmanagedImage Source image data.
rect System.Drawing.Rectangle Image rectangle for processing by the filter.
return void