Problem Set No. 2
By Alan Daniels

Introduction

In this problem set, we were to duplicate all of the operators done on pages 150 to 153 from the book "Machine Vision", by Jain, Kasturi, and Shunck. We were to take an image, apply different filtering and noise functions to it, and then try several different edge detection algorithms to see the results. The images I tried were: Also, the edge detection algorithms I tried were:

Here is the MATLAB code used to generate all of the pictures you see below.

The Results

This assignment was pretty straightforward, so I'll let the results speak for themselves. I've deliberately set up the matrices myself, rather than using the standard MATLAB "edge" function with arguments, since the "edge" function gives binary results, and I wanted to see the grayscale version. In each case, I set up the convolution matrix manually, used the absolute value of the convolution, and scaled the result by five or 10 to make the results more visible. I've arranged everything into a grid to make the comparison easier.

  Original Filter Noise + Filter Noise Only
Originals
Gradient
Downward
1 By 2
Gradient
Downward
2 By 2
Gradient
Rightward
1 By 2
Gradient
Rightward
2 By 2
Roberts
Sobel
Prewitt

Conclusion

As is obvious, each of the edge detection algorithms are very intolerant of noise, much more than I thought it would be originally. Also, standard Gaussian filtering was mildly helpful, but not nearly enough to make up for any noise introduced into the picture.


This was written by Alan Daniels on Feb 16th, 1998.
If you have any questions, please feel free to e-mail me.