This essay has a total of 784 words and 4 pages.

Summary

We have to develop an adaptive thresholding system for greyscale image binarisation. The
simplest way to use image binarisation is to choose a threshold value, and classify all
pixels with values above this threshold value as white and all other pixels as black.
Thresholding essentially involves turning a colour or greyscale image into a 1-bit binary
image. If, say, the left half of an image had a lower brightness range than the right
half, we make use of Adaptive Thresholding. Global thresholding uses a fixed threshold for
all pixels in the image and therefore works only if the intensity histogram of the input
image contains distinct peaks corresponding to the desired subject and background. Hence,
it cannot deal with images containing, for example, a strong illumination gradient.

Local adaptive thresholding, on the other hand, selects an individual threshold for each
pixel based on the range of intensity values in its local neighbourhood. This allows for
thresholding of an image whose global intensity histogram doesn't contain distinctive
peaks.

The assumption behind method is that smaller image regions are more likely to have
approximately uniform illumination, thus being more suitable for thresholding. Firstly, we
develop a method based on the local row average to binarise the current line using that
threshold. We then extend this technique to a moving window of different sizes.

Method
For the first part of the assignment, we develop a method based on the local row average
to binarise the current line using that threshold. We consider each individual row at a
time; calculate the average brightness value for that row based on the brightness values
of all the pixels in that row. We then use this average value to binarise that row. We
then proceed to the next row and so on. In this way we binarise the whole image.

For the second part of the assignment, we make a window of user defined size around the
centre pixel under consideration, calculate the average value for all the pixels in this
window and then binarise that centre pixel using this average value as the threshold
value. We continue this procedure till we binarise the whole image.

For the pixels towards the edges of the image, we check for the number of pixels preceding
the centre pixel. If this number is less than half the window size, we modify our code
accordingly to take care so that we calculate the average value for that centre pixel.

Input Image File