Next: Gaussian-Laplacian Pyramid Image Coding
Up: canny
Previous: Canny Edge Detection
Why can human perceive edges seemingly effortless, while it is usually
quite difficult for an edge detector to find them ? One reason is that
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
2004-09-20