Programming Assignment 1
This assignment is due on Friday, March 2, 2007.
For this assignment, you will implement the Canny edge detector. In particular, you will
implement three routines that does image smoothing, edge enhancement and edge localization
(nonmaximum suppression and hysteresis_thresholding), respectively. The first two routines should be straightforward to implement. The last one, while more involved than the previous two, is
also straightforward but it requires some planning. You should implement this assignment
using only MATLAB, and this will make both the implementation and grading considerably easier.
More Details
- To smooth the images, you should use Gaussian smoothing
- After implementing the required three routines, you should also implement a MATLAB routine
named Canny_Edge.m that takes in four inputs and returns two outputs. The four inputs are image file name, the width of the Gaussian kernel and the two
parameters used in hysteresis thresholding. For the two outputs, you need to provide the number of (connected) detected edges and for each edge, a list of pixels belonging to it.
- For the required outputs, use the cell structure in MATLAB.
- You also need to turn in the results (in binary images) of applying your canny edge detector to the following
four images. You need to experiment (tune) with the parameters and select the best result for each of the
following images.
- You should turn in the MATLAB code (four different files) in a zip file here.
Images
Face
Cow
Brain
Lenna (Arguably the most famous image there is in the image processing and computer vision community. Click here for more information about Lenna.)
Some useful MATLAB routines
- imread
- image (imagesc)
- conv and conv2