
what are the preprocessing steps to get a binary Image using OTSU?
    6 views (last 30 days)
  
       Show older comments
    
Hi All
I am able to get a binary image for the attached example by defining threshold manually (trial and error). However, When I use Otsu thresholding, the result is not satisfactory. What pre-prosessing would be useful before I apply OTSU for the attached Image? I also present the result when I use OTSU AS below. 
Any other methods to get a binary Image are welcome. 
Thanks

0 Comments
Accepted Answer
  Image Analyst
      
      
 on 25 Nov 2018
        Try a top hat filter.  See attached.

11 Comments
  Image Analyst
      
      
 on 27 Nov 2018
				It looks like you're trying to find the black stuff whereas I was trying to find the bright stuff inside the black stuff, so I got rid of the last part of the loop and looped over structuring element radii to see which one give the best values.  Did you try that?  I did and am attaching the code and the image it makes.  Pick whatever radius looks best to you.  Or you could try to change the shape of the structuring element from a disk to a cross or something to see if that does better.

More Answers (1)
  Image Analyst
      
      
 on 23 Nov 2018
        
      Edited: Image Analyst
      
      
 on 23 Nov 2018
  
      Try this:
binaryImage = imbinarize(grayScaleImage);
Or you can try my triangle thresholding method, attached.
You should also do a background correction on the image before using a global threshold.  See attached demo.
See Also
Categories
				Find more on Image Segmentation and Analysis in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
