Posted on Wed, Feb. 27. The project must be submitted to the Teaching Assistant by Friday March 08. The project must be submitted by electronic mail to the class account ya42601. You must submit a readme file, your source files, and processed images. You must tar your multiple files into a single file named p1.tar.
Overview.
The goal of this project is to implement your own edgel detector. Basically, your program should smooth the image using a filter (e.g. Gaussian) and detect the edgels with a difference operator (e.g. Sobel). Actually, the project involves the use of one filter and a set of difference operators. You must test your edgel detector in the three provided images: a city map , a face and building . The different strategies you use to detect edgels must be compared concerning false negatives and false positives criteria. A false negative is a rejection of a correct hypothesis (an actual edge not detected) while a false positive is the acceptance of an incorrect hypothesis (a detection that does not represent an actual edge). The identification of actual edges is application domain dependent. Therefore, it is up to you the classification of the correct edges. The grader will have some discretion concerning this topic. Results and comparisons must be described in your report, where you should point out the bests filter scale-operator-threshold triples for each application domain. You may use any programming environment provided in the dc cluster (OIT) account. You are strongly encouraged to expand the main guidelines of this projects concerning the filters and operators suggested for this task.
Introduction.
An edge is an image contour across which the brightness of the image changes abruptly in magnitude or in the rate of change of magnitude. Possible causes for an intensity edge are surface-normal discontinuities, depth discontinuities, surface-reflectance discontinuities, and illumination discontinuities. A detection process consists basically in three steps: detection of short linear edge segments (edgels), aggregation of edgels into extended edges (lines, circles, curves), and parametric description of the edges (algebraic functions). This project concerns only the first step, where you will use difference operators.
Edgel Detection Process.
The edgels detection process (first step) consists in
smoothing the image, apply a difference operator and perform thresholding.
Smoothing means to convolve the image with some local
averaging filter that has all positive weights summing up to unit. The
smoothing filter for this project is the two-dimensional Gaussian. You
must smooth the images with at least three different standard deviations
(scales) for the purpose of comparisons A difference operator is a mask
matrix whose elements sum up to zero. The difference operators for this
project are the Roberts' cross operator, Sobel operator, and Navatia-Babu
operator. These operators are described below. The application of a difference
operator consists in convolve the operators with a window of the image
for each gradient direction (e.g. x and y). The gradient magnitude for
each pixels will be the maximum among all directions. Thresholding means
that a response of an difference operator is suppressed when this response
lies below a certain value, called threshold. Another way to detect edges
is identifying the gradient local maxima concerning the neighborhood for
each pixel.
Smooth Filter and Difference Operators.
The Gaussian smooth filter is a matrix mask built according to the Gaussian function: G(x, y) = (1/(2pi*sigma^2))exp(-[x^2 + y^2]/(2 sigma^2)), where sigma is the standard deviation and exp represents the power by the natural constant. The center element of the matrix must correspond to (x, y) = (0, 0).
Roberts' cross operator ia a difference operator that
uses two mask directions to compute the gradient at the center of a 2x2
window along the diagonals of the window. You may also incorporate constant
multiplicative factors to the masks and you should mention that in your
report. The Roberts' cross operator masks are:
|
|
|
|
|
|
and
|
|
|
|
|
|
Each Sobel operator mask provides the scaled average of
either the image's horizontal or vertical directional derivative. The Sobel
operators masks are:
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
The Navatia-Babu operator uses the magnitude of the largest response of (six) oriented templates applied at an image point. The orientation of a step edge is given by the orientation of the template that provides the largest response. The Navatia-Babu mask templates for six directions (0, 30, 60, 90, 120, 150 degrees) are:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Working in Advance.
The next step of an edge detector is the aggregation of edgels into edges represented by lines, circles or curves. Therefore, if you want to work in advance, you may implement a Hough Transform to identify line segments and circles in the image. The Hough Transform will be covered in class. Basically, the Hough transform maps each point/edgel onto the set of all possible parameter values for which the line/circle passes through the given point/edgel. Then, it finds the intersection of all the sets of parameters values that are mapped this way. See Nalwa (pg. 109-113).
Submission Files.
You must submit a readme file, named readme.txt. The readme file enumerates and describes all files in you tar file. The readme file should also contain a description of your implementations and a report where you discuss your results and comparisons between different strategies for edgel detection. The main variables guiding these comparisons are the scale for the Gaussian, the difference operator used, and a threshold. You may use one or more tables to show your result descriptions according to these variables. You must also submit your source files and processed images. All multiple files must be in a single tar file (p1.tar) and sent to ya42601.
References