Thursday, October 25, 2012

Image thresholding and smoothing

Thresholding helps to visualize the useful portion of the image, whereas smoothing helps to remove noise from the Image.  The images captured through a camera are generally in analog format and therefore it is digitized by sampling. The digitized image is stored in a computer in the form of pixel arrays. Each pixel contains the information such as the color or intensity of that portion of the image. Pixel size depends on the sample size of the digitization process. In image thresholding each pixel value is either set to black or white depending on a user defined threshold value. In smoothing the pixel values are set based on the values of the neighboring pixels.

Image Scaling in Grayscale images

Image scaling is the process of incrementing the pixel values based on user defined scaling factor. Image scaling helps to increase the brightness of the image. In grey scale image scaling the user defined value is added to the pixel value. Below is the image scaling result with a scaling factor 25, 50 in the Region of interest (ROI) one and two respectively. The brightness and hence the quality of image is increased by scaling. The original image is shown in left side and the scaled image on the right side.

Image thresholding in Grayscale images

Thresholding in the Grayscale images is done by setting the pixel values to 0 or 256 based on a threshold value defined by the user. For example if the threshold value is 125 then all pixel values below 125 are set to 0 and all pixel values above 125 are set to 256. In this way the image features are more easily identifiable. Below is the image thresholding result on a grey scale image with thresholding values 100, 150 for ROI one and two respectively.
Image thresholding in Color Images

In color thresholding the distance between the RGB pixels of the image with the user defined color values is then compared with a user defined threshold TC. If the distance falls below the threshold then those pixels are set to white and all other pixels are set to black. A sample result with RGB (25,25,25) with TC = 205 and TC = 100 for ROI one and two are shown below respectively.

Adaptive Weighted thresholding in Grayscale images

In normal thresholding the parameter provided by the user affects the entire image. Hence it might give undesirable results in images which have a wide variability in intensity. Adaptive weighted thresholding helps to overcome this issue by using a weight factor W which is compared with the mean of the pixels falling inside the odd sized window with the current pixel as the center. The result of such a thresholding with Window size 3, 5 and threshold factor 15, 20 on ROI one and two are shown below respectively.

One dimensional Smoothing in Grayscale Images

In one dimensional smoothing the pixels values are averaged along one dimension of the two dimensional pixel plane. The result of one dimensional smoothing in X and Y direction separately is shown below with windows size 3, 5 on ROI one and two respectively. The window size should be selected reasonably so that blurring is kept to the minimal level possible.

Two dimensional Smoothing in Grayscale images

In two dimensional smoothing the mean of the whole window in the two dimensional plane is used as the pixel value. The result of two dimensional smoothing with window size 3 and 5 on ROI one and two is shown below.

Some of the functions I used to do above operations in C++ are in Git here. Note that the custom class Image and ROI are not included here. However this code is enough for explaining the main logic.

No comments:

Post a Comment