Otsu Thresholding

QR for this page

From Fiji

Jump to: navigation, search
Otsu Thresholding (ImageJ)
Author Christopher Mei, Anthony Joshua, Tony Collins
File Otsu_Thresholding.jar (15,549 Bytes)
Source in .jar file
Initial release 15 December 2003
Latest version 15 June 2005
Development status unknown
Category Segmentation
Website [1]


This plugin automatically threshold an image according to Otsu's method, described in his paper:

  • Otsu, N. (Jan. 1979), "A threshold selection method from gray level histograms", IEEE Transactions on Systems, Man and Cybernetics 9 (1): 62-66, CODEN: ISYMAW, ISSN 0018-9472


For each image of the stack, the plugin determines a threshold by histogram partitioning. The histogram is divided in two classes and the threshold is the value that minimizes the within-class variance. There is no use of spatial coherence, nor any other notion of object structure.

Assumptions of the algorithm:

  • the histogram is bimodal.
  • uniform illumination (implicitly), so the bimodal brightness behavior arises from object appearance differences only.


This plugin only operates on 8-bit images. A 16-bit version can also be found: OtsuThresholding_16Bit.java

It is a bit painful to use with stacks; it determines a threshold for each independent image, but does not output a stack (instead one get a collection of separate images) and bothers the user for each image with a result dialog at each step.

25px To-do list:


  • Rewrite plugin to handle stacks correctly
  • Rewrite plugin to handle 16-bit images natively

I think that this is superseeded by the Auto Threshold plugin which handles stack slices independently or with a global histogram (including Otsu's method). There is, however no 16 bit version yet.

--Gabriel 14:03, 13 April 2009 (CEST)


Agree. Like for the MultiThresholder, it should be removed with next relase JeanYvesTinevez 17:50, 13 April 2009 (CEST)