what is 2D otsu algorithm and how to implement it

18 views (last 30 days)
I'm a little confusing about what does 2D-Otsu mean? and how to implement it? I didn't find enough information about it in the site. and I hope anyone can help me

Accepted Answer

Image Analyst
Image Analyst on 20 Aug 2014
It's a thresholding method. It's implemented in the Image Processing Toolbox function graythresh(). In most cases I find it to be sub-optimal. It's best for images with a nice bimodal histogram, like you'd get with a light part/object/region on a uniform background. For anything complicated it's not so great and you'd need to write a custom thresholding algorithm.
  6 Comments
Aaron Greenbaum
Aaron Greenbaum on 6 Sep 2017
I believe that the Otsu method used in Graythresh is the 1d Ostsu method which only accounts for graylevels over the whole image. the 2d Ostsu method looks at the graylevels over the whole image and also the spatial relationship between pixels. I'm not sure if you did say that.
Do you have any advice for creating custom Thresholding algorithms? Maybe you know some good references or examples? I will check out your demos later but I've been having a lot of trouble automatically thresholding an image with a gaussian looking grayscale histogram.
Image Analyst
Image Analyst on 9 Jan 2021
I don't know that method. Exactly what spatial relationship does it look at and what does it do with those? So I guess you're saying this is neither a global Otsu threshold over the whole image, nor a spatially adaptive one that computes the threshold based on a scanning 2-D window. But I don't know what other kinds of Otsu there are.
Personally I find Otsu not as useful as triangle thresholding, which I attach code for. This is because often/usually you don't have nice bimodal histograms and usually what I see are skewed unimodal histograms which the triangle threshold is perfect for.

Sign in to comment.

More Answers (2)

William Frane
William Frane on 20 Aug 2014
Edited: William Frane on 20 Aug 2014
Otsu's method (as it's more commonly known) is an image thresholding method used to convert a grayscale image to a binary one. MATLAB's graythresh() function (see this page) is an implementation of Otsu's method. If you're curious about the actual algorithm, it's described in the appropriate Wikipedia article.
Also, just a side note: the MATLAB documentation page for graythresh() that I linked to above was the first result for a Google search of the string matlab otsu algorithm, so don't hesitate to check Google for queries such as this; there's often useful information already available.
  1 Comment
Lars Abrahamsson
Lars Abrahamsson on 9 Jan 2021
But the question was about 2-dimensional Otsu. That is not included in Matlab and has to be written manually, I think.

Sign in to comment.


Meshooo
Meshooo on 21 Aug 2014
Edited: Walter Roberson on 9 Jan 2021
Otsu method is a well-known thresholding method. In other words, it can find the threshold value to convert your image to two levels (bilevels) 0 and 1.
This work was published lone time ago in 1979.
[1] Otsu, N., "A Threshold Selection Method from Gray-Level Histograms," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!