Thresholding (image processing)



In digital image processing, thresholding is the simplest method of segmenting images. From a grayscale image, thresholding can be used to create binary images.

Definition
The simplest thresholding methods replace each pixel in an image with a black pixel if the image intensity $$I_{i,j}$$ is less than a fixed value called the threshold $$T$$, or a white pixel if the pixel intensity is greater than that threshold. In the example image on the right, this results in the dark tree becoming completely black, and the bright snow becoming completely white.

Automatic thresholding
While in some cases, the threshold $$T$$ can be selected manually by the user, there are many cases where the user wants the threshold to be automatically set by an algorithm. In those cases, the threshold should be the "best" threshold in the sense that the partition of the pixels above and below the threshold should match as closely as possible the actual partition between the two classes of objects represented by those pixels (e.g., pixels below the threshold should correspond to the background and those above to some objects of interest in the image).

Many types of automatic thresholding methods exist, the most famous and widely used being Otsu's method. Sezgin et al 2004 categorized thresholding methods into broad groups based on the information the algorithm manipulates. Note however that such a categorization is necessarily fuzzy as some methods can fall in several categories (for example, Otsu's method can be both considered a histogram-shape and a clustering algorithm)


 * Histogram shape-based methods, where, for example, the peaks, valleys and curvatures of the smoothed histogram are analyzed. Note that these methods, more than others, make certain assumptions about the image intensity probability distribution (i.e., the shape of the histogram),
 * Clustering-based methods, where the gray-level samples are clustered in two parts as background and foreground,
 * Entropy-based methods result in algorithms that use the entropy of the foreground and background regions, the cross-entropy between the original and binarized image, etc.,
 * Object Attribute-based methods search a measure of similarity between the gray-level and the binarized images, such as fuzzy shape similarity, edge coincidence, etc.,
 * Spatial methods use higher-order probability distribution and/or correlation between pixels.



Global vs local thresholding
In most methods, the same threshold is applied to all pixels of an image. However, in some cases, it can be advantageous to apply a different threshold to different parts of the image, based on the local value of the pixels. This category of methods is called local or adaptive thresholding. They are particularly adapted to cases where images have inhomogeneous lighting, such as in the sudoku image on the right. In those cases, a neighborhood is defined and a threshold is computed for each pixel and its neighborhood. Many global thresholding methods can be adapted to work in a local way, but there are also methods developed specifically for local thresholding, such as the Niblack or the Bernsen algorithms.

Software such as ImageJ propose a wide range of automatic threshold methods, both global and local.

=== Benefits of Local Thresholding Over Global Thresholding ===


 * Adaptability to Local Image Characteristics: Local thresholding can adapt to variations in illumination, contrast, and texture within different parts of the image. This adaptability helps in handling images with non-uniform lighting conditions or complex textures.
 * Preservation of Local Details: By applying tailored thresholds to different regions, local thresholding can preserve fine details and edges that might be lost in global thresholding, especially in areas with varying intensities or gradients.
 * Reduced Sensitivity to Noise: Local thresholding can be less sensitive to noise compared to global thresholding, as the thresholding decision is based on local statistics rather than the entire image.

Examples of Algorithms for Local Threshold
Threshold is thresholding

Multi-band images
Color images can also be thresholded. One approach is to designate a separate threshold for each of the RGB components of the image and then combine them with an AND operation. This reflects the way the camera works and how the data is stored in the computer, but it does not correspond to the way that people recognize color. Therefore, the HSL and HSV color models are more often used; note that since hue is a circular quantity it requires circular thresholding. It is also possible to use the CMYK color model.

Multiple thresholds
Instead of a single threshold resulting in a binary image, it is also possible to introduce multiple increasing thresholds $$T_n$$. In that case, implementing $$N$$ thresholds will result in an image with $$N$$ classes, where pixels with intensity $$I_{ij}$$ such that $$T_n < I_{ij} < T_{n+1}$$ will be assigned to class $$n$$. Most of the binary automatic thresholding methods have a natural extension for multi-thresholding.

Limitations
Thresholding will work best under certain conditions :


 * low level of noise
 * higher intra-class variance than inter-class variance, i.e., pixels from a same group have closer intensities to each other than to pixels of another group,
 * homogeneous lighting, etc.

In difficult cases, thresholding will likely be imperfect and yield a binary image with false positives and false negatives.