Edge Detection
Edge Detection is a kind of "Area-based" Image Processing Alogirhtm. Edge Detection can be performed either in the Spatial Domain (our normal images) or in the Frequency Domain. We present here only some of the Spatial Domain techniques.What is it?
Edge Detection is the discovery including the
localization and description of edges in an image. A pixel that is designated as
an edges in a 2D image represents a point where greyscale values greatly
varry. Often this will correspond to boundaries of objects such as the
transition between
Why?
Edges describe/represent some of the important features of an
image. The extraction of features has been used in everything from compression
algorithms to more commonly the interpretation of image information. It also has
been used as another cool special effect.
If you were to look at greyscale transitions of a 1D signal (or you can think
of this as looking for vertical kinds of edges in a single image row of a 2D
image) the following would be "kinds" of edges that you may observer.
Step Ramp |-------- /-------- | / | / _______| _______/ Roof Line /\ |--| / \ | | / \ | | ___/ \_____ _____| |________Ofcourse such perfect profiles rarely happen, but, they illustrate the kind of greyscale variation that leads to the observance of an edge point.
Definitions
- Edgel or Edge point a pixel/point in the image where a significant local intensity change occurs.
- Edge Fragment Can be described by its location in the image and its oriendation.
- Contour A set of connected edges.
- Edge linking The connection of edge points or fragments into a countour.
- Edge following The process of tracing/tracking consecutive edge points.
There are MANY ways to detect edges. In the spatial domain, this is performed
by Convolution with a Filter Mask. See here for a general description of this process. Below are
some examples.
Roberts
Gx =
|
Gy=
|
The edge image is = |Gx| + |Gy|.
Sobel Edge Detection
Sx =
|
Sy=
|
The edge image is = sqrt (Sx*Sx + Sy*Sy).
Second Order Derivative Edge Detector: LOG
LOG stands for the Laplacian of Gaussian. You have reading on this kind of detector. But, here instead taking edge points as the maximums of the First Order Derivative Filters such the zero-crossings of the Second Order Derivative will indicate the presence of an edge point. The Laplacian function is the implmentation of the Second Order Derivative. However, first, a Gaussian function is applied to do some smoothing. This is discussed in your reading and was developed by modeling how our human eye detects edges.
LOG =
0 | 0 | -1 | 0 | 0 |
0 | -1 | -2 | -1 | 0 |
-1 | -2 | 16 | -2 | -1 |
0 | -1 | -2 | -1 | 0 |
0 | 0 | -1 | 0 | 0 |
Notice how the signle filter is symmetric. Different sized masks can be choosen such as 9x9, 11x11, etc.
Consider the Following:
- What is the difference in these operators? What will the output look like for different images?
- How would you design a mask or set of masks to detect only vertical edges?