Apache/2.2.15 (CentOS) Server at www.wpstats.org Port 80

a bit(e) of everything

Week3 – Progress Report

During the last week I studied some image pre-processing filters and techniques. For understanding better the concept I played around OpenCV – which I strongly recommend if you are interested in Computer Vision. OpenCV make possible prototype and experiment image processing algorithms in an intuitive and quick way.

I covered noise removal and image morphology. I’ll quickly cover the algorithm and propose some images as example. The following filters have been applied to this image:

For noise removal I took in consideration the following smoothing techniques:

blur: each pixel in the original image is re-calculated as the mean of its neighbors (the number of neighbor considered depends on the chosen kernel: the mask used for the mean)

median: neighbors are sorted according their intensity, the intensity of the pixel under examination is equal to the intensity of the pixel at the middle position in the sorting list (again the neighbors are selected using a kernel)

gaussian: it works in the same way of blur but using a Gaussian distribution to calculate the mean (in this case the kernel woks both for masking and for weighting the neighbors’ intensity according to the a Gaussian curve)

bilateral: it is a combination of the Gaussian smoothing (that operates in the space domain) and a smoothing that works with the color domain (it is always based on a Gaussian distribution but instead of weighting over the distance from a central pixel it weights over the color distribution)

For image morphology I covered:

dilation: it convolves the source image with a kernel, it substitutes the value of the pixel under examination with the max intensity obtained with the convolution operation – final result brighter images

erosion: like dilation but using the minimum intensity – final result darker images

opening: it combines dilation and erosion, precisely it applies erosion first and dilation lastly (used for clustering blobs in an image removing glitches)

closing: it combines dilation and erosion, precisely it applies dilation first and erosion lastly (used for analyzing small details)

gradient: it creates a dilated image and an eroded image, then subtracts the latter to the former (used to isolate perimeters of blobs)

top-hat: it subtracts the opening of the image to its source (used to isolate local brightness peaks)

black-hat: it subtracts the image source to its closing version (used to isolate local darkness peaks)

Next steps:
1. after applying image pre-processing filters it’s time to extract edge features: investigate and test Sobel, Canny, Roberts Cross, RGB channel coupling,…
2. start exploring contouring techniques
3. add parameter tuning in the filter program
3. formalize a process/criteria to evaluate the performance of the chain: smoothing + morphology + edge detector + contouring

1 comment
1. Heather D-H says: February 17, 20123:58 PM

Thanks so much for the thorough documentation, this page is a great resource for anyone exploring pre-processing!