image thumbnail

Automatic Thresholding

version (1.1 KB) by Kanchi
Compute an optimal threshold for seperating the data into two classes.


Updated 21 Mar 2006

No License

Compute an optimal threshold for seperating the data into two classes [1].

This algorithm can be summarized as follows. The histogram is initially segmented into two
parts using a a randonly-select starting threshold value (denoted as T(1)). Then, the data are classified into two classes (denoted as c1 and c2). Then, a new threshold value is computed as the average of the above two sample means. This process is repeated untill the threshold value
does not change any more.

The algorithm was implemented by Dhanesh Ramachandram [2]. However, the input data of her/his algorithm should lie in the range [0,255]. My code doesn't have this requirement.

t = func_threshold(T);

Reference: [1]. T. W. Ridler, S. Calvard, Picture thresholding using an iterative selection method,
IEEE Trans. System, Man and Cybernetics, SMC-8, pp. 630-632, 1978.
[2]. Dhanesh Ramachandram, Automatic Thresholding. Available online at:

Jing Tian
Contact me :
This program is written in Mar. 2006 during my postgraduate studying in Singapore.

Cite As

Kanchi (2022). Automatic Thresholding (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: Automatic Thresholding

Inspired: Ridler-Calvard image thresholding, Autoscaleit

Community Treasure Hunt

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

Start Hunting!