graythresh
Global image threshold using Otsu's method
Syntax
level = graythresh(I)
[level EM] = graythresh(I)
Description
level = graythresh(I) computesa global threshold (level) that can be used toconvert an intensity image to a binary image with im2bw. level isa normalized intensity value that lies in the range [0, 1].
The graythresh function uses Otsu's method,which chooses the threshold to minimize the intraclass variance ofthe black and white pixels.
Multidimensional arrays are converted automatically to 2-D arraysusing reshape. The graythresh functionignores any nonzero imaginary part of I.
[level EM] = graythresh(I) returnsthe effectiveness metric, EM, as the second outputargument. The effectiveness metric is a value in the range [0 1] thatindicates the effectiveness of the thresholding of the input image.The lower bound is attainable only by images having a single graylevel, and the upper bound is attainable only by two-valued images.
Class Support
The input image I can be of class uint8, uint16, int16, single,or double andit must be nonsparse. The return value level isa double scalar. The effectiveness metric EM isa double scalar.
Examples
I = imread('coins.png');
level = graythresh(I);
BW = im2bw(I,level);
imshow(BW)
See Also
Reference
[1] Otsu, N., "A Threshold Selection Methodfrom Gray-Level Histograms," IEEE Transactions on Systems,Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66.