Cutting Edge in Image Processing
I have done two major tasks including:
Image Transformations:
Write functions to do each of the following to an input grayscale image of ‘Lena’:
1. map a grayscale image to its 'negative image', in which the lightest values
appear dark and vice versa.
2. map the image to its 'mirror image', i.e., flipping it left to right.
3. add or subtract a random value between [0,255] to every pixel in a
grayscale image, then clip the resulting image to have a minimum value
of 0 and a maximum value of 255.
4. take the Lena image and break it into 16 * 16 non overlapping
blocks. For each of the block compute the histogram and visualize them in a
4 by 4 grid (it should fit in a page).
How would you compute the histograms if the image would have been in
color? Are histograms invariant to translation, rotation and scale? For
each of the blocks compute the mean value and show the image of size
16 * 16 pixels produced (low resolution image).
Canny Edges Detector:
For this assignment you should implement Canny’s edge detection algorithm as
described in the class. Your implementation should take as input a grayscale
image and the edge detection parameters. These are the partial derivative for the gaussian
convolution and the gradient magnitude thresholds. The output should be a
binary image.
You should implement gaussian convolution as a sequence of horizontal and
vertical convolutions (separability of the filter).
The output of should NOT have fat edges! You should implement the hys-
theresis mechanism that uses two thresholds. Your implementation of hysthere-
sis should be efficient. You should submit what each part of your code does,
and a comparison of the results with the already existing implementation. Show
some results and discuss the effects of parameters. Please write a lot of com-
ments in the source code, explaining what is going on.