next up previous
Next: Gaussian-Laplacian Pyramid Image Coding Up: canny Previous: Canny Edge Detection

Edge detection with image pyramid

Why can humans perceive edges seemingly effortlessly, while it is usually quite difficult for an edge detection algorithmto find them ? One reason is that human vision has access to the global information while the gradient operator only has local information contained in a 3x3 or 5x5 neighborhood. 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.

  1. Build an image pyramid. Assume the size of the given image is N by N where $N=2^n$. 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 $2 \times 2=4$ 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 $n=log_2 N$ times until finally an image of only 1 pixel (average of entire image) is generated as the top of the pyramid.

    image_pyramid.gif

  2. 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 $T[k]$ for this level, the pixel is on an edge and its four children in the next level are recursively checked again.

image_pyramid_code.gif


next up previous
Next: Gaussian-Laplacian Pyramid Image Coding Up: canny Previous: Canny Edge Detection
Ruye Wang 2013-09-25