Next: Gaussian-Laplacian Pyramid Image Coding
Up: canny
Previous: Canny Edge Detection
Why can human see the edges in this image while it is hard for an edge
detector such as a gradient operator to find it? Huam has access to the
global information while the gradient operator only has local
information (3x3, 5x5, etc.). The difference is probably best appreciated
by thinking of a mouse in a maze and a bird looking down from the sky.
Here is a method that combines both global and local information to detect
edges while suppressing noise (textures, etc.) at the same time.
- Build an image pyramid. Assume the size of the given image is N by N
where
. The image pyramid is a hierarchical structure composed of n
levels of the same image of different resolutions. At the bottom of the
pyramid is the given full size image. Each set of
neighboring
pixels is replaced by their average as the pixel value of the image at the
next level. This process, which reduces the image size by half, is repeated
times until finally an image of only 1 pixel (average of entire
image) is generated as the top of the pyramid.
- Find a proper level in the pyramid where noise is sufficiently supressed
while major edges are still represented. For each edge element, a pixel with
its gradient greater than a threshold, search its 4 children in the next level
to identify finer edge elements. Do this recursively untill finding edges with
fine details but without interference of noise.
Here is the psudo code for the method, where function EdgeOp(k,i,j) is an
edge detector for image of level k and it returns a value indicating how
likely pixel (i,j) is an edge pixel, such as the magnitude of the gradient.
If this value is greater than a threshold
for this level, the pixel
is on an edge and its four children in the next level are recursively
checked again.
Next: Gaussian-Laplacian Pyramid Image Coding
Up: canny
Previous: Canny Edge Detection
Ruye Wang
2002-09-22