# Top-hat transform

In mathematical morphology and digital image processing, a top-hat transform is an operation that extracts small elements and details from given images. There exist two types of top-hat transform: the white top-hat transform is defined as the difference between the input image and its opening by some structuring element, while the black top-hat transform is defined dually as the difference between the closing and the input image. Top-hat transforms are used for various image processing tasks, such as feature extraction, background equalization, image enhancement, and others.

## Mathematical definitions

Let $f:E\mapsto \mathbb {R}$ be a grayscale image, mapping points from a Euclidean space or discrete grid E (such as $\mathbb {R} ^{2}$ or $\mathbb {Z} ^{2}$) into the real line. Let $b(x)$ be a structuring element of grayscale.
Then, the white top-hat transform of f is given by:
    $T_{w}(f)=f-f\circ b$,
where $\circ$ denotes the opening operation.
The black top-hat transform of f (sometimes called the bottom-hat transform ) is given by:
    $T_{b}(f)=f\bullet b-f$,
where $\bullet$ is the closing operation.

## Properties

The white top-hat transform returns an image, containing those "objects" or "elements" of an input image that:
* Are "smaller" than the structuring element (i.e., places where the structuring element does not fit in), and
* are brighter than their surroundings.
The black top-hat returns an image, containing the "objects" or "elements" that:
* Are "smaller" than the structuring element, and
* are darker than their surroundings.
The size, or width, of the elements that are extracted by the top-hat transforms can be controlled by the choice of the structuring element $b$. The bigger the latter, the larger the elements extracted.
Both top-hat transforms are images that contain only non-negative values at all pixels.
One of its most important uses in image segmentation is to adjust nonuniform lighting conditions on an image and provide a better threshold value for separating objects.

## Example

Assume that the user is only interested in small blobs on the image and wants to remove the larger bright objects. In this case, the white top-hat transform can remove larger bright objects and retain small blobs by selecting the size of the structuring element that is between removed objects and objects of interest. The radius of six largest bright objects are approximately 50 to 100 pixels whereas the radius of objects of interest are around 2 to 4 pixels. In addition, the objects of interest are circular shapes so we choose a disk shaped structuring element with radius 5. However, selecting different shapes and sizes for the structuring element result in different images depending on whether objects fit in the structuring element or not.
The other example is an image under nonuniform illumination, where the user wants to extract objects separately from background. The common method for image segmentation is to threshold the input image based on intensity value. However, if the image is under nonuniform lighting, it is possible that segmentation errors might present themselves since some objects in darker area have close intensity values as background intensity values and would not be extracted by only utilizing threshold method. In this case, before Otsu's method is applied to input image, white top-hat transform should be implemented to correct nonuniform lighting condition and make obvious contrast between background and objects. Therefore, the objects can be extracted entirely from background without segmentation errors. The threshold values are 0.5216 and 0.2 and normalized to $[0,1]$ for original image and applied white top-hat transform respectively.