In computer vision and image processing, Otsu's method is used to automatically perform histogram shape-based image thresholding, or, the reduction of a graylevel image to a binary image. The algorithm assumes that the image to be thresholded contains two classes of pixels or bi-modal histogram (e.g. foreground and background) then calculates the optimum threshold separating those two classes so that their combined spread (intra-class variance) is minimal. The extension of the original method to multi-level thresholding is referred to as the Multi Otsu method. Otsu's method is named after Nobuyuki Otsu (大津展之 Ōtsu Nobuyuki ).
In Otsu's method we exhaustively search for the threshold that minimizes the intra-class variance (the variance within the class), defined as a weighted sum of variances of the two classes:
Weights are the probabilities of the two classes separated by a threshold and variances of these classes.
Otsu shows that minimizing the intra-class variance is the same as maximizing inter-class variance:
which is expressed in terms of class probabilities and class means .
The class probability is computed from the histogram as :
while the class mean is:
where is the value at the center of the th histogram bin. Similarly, you can compute and on the right-hand side of the histogram for bins greater than .
The class probabilities and class means can be computed iteratively. This idea yields an effective algorithm.
- Compute histogram and probabilities of each intensity level
- Set up initial and
- Step through all possible thresholds maximum intensity
- Update and
- Desired threshold corresponds to the maximum
- You can compute two maxima (and two corresponding thresholds). is the greater max and is the greater or equal maximum
- Desired threshold =
- M. Sezgin and B. Sankur (2004). "Survey over image thresholding techniques and quantitative performance evaluation". Journal of Electronic Imaging 13 (1): 146–165. doi:10.1117/1.1631315.
- Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9 (1): 62–66. doi:10.1109/TSMC.1979.4310076.
- Ping-Sung Liao and Tse-Sheng Chen and Pau-Choo Chung (2001). "A Fast Algorithm for Multilevel Thresholding". J. Inf. Sci. Eng. 17 (5): 713–727.
- Lecture notes on thresholding - covers the Otsu method.
- A plugin for ImageJ using,/.,/,.?>?, Otsu's method to do the threshold.
- A full explanation of Otsu's method with a worked example and Java implementation.
- Implementation of Otsu's method in ITK
- Otsu Thresholding in C# A straightforward C# implementation with explanation.