Vision Processing with the Canny Edge Detection Reference Design

ID 683433
Date 2/14/2015
Document Table of Contents

1.4.6. Edge Linking

The double threshold output often suffers from streaking where weak edge pixels break up strong edge pixels, because it is difficult to choose the perfect low and high threshold values. Some true edge pixels may be classified as weak edge pixels as their values might fluctuate around the high threshold. The design can reclassify the weak edge pixels as strong edge if they are connected to a strong edge pixel either directly or indirectly. An indirect connection is defined as a weak edge pixel linked to a strong edge via continuously connecting weak edge pixels. Weak edge pixels not connected to any strong pixels are reclassified as no edge pixels. True edges form continuous lines and any rogue weak edges because of noise and color variations or texturing effects are independently distributed from true edges. The design performs strong-weak edge linking recursively as its connection end points and depth are variable.

The design:

  • Scans the double threshold image pixel by pixel until the last image pixel is reached.
  • If a strong edge pixel is encountered, checks its immediate 8 point connected neighborhood for any weak edge pixel.
  • If it finds a pixel neighbor with a weak edge intensity, burns that neighboring pixel as a strong edge. Returns to step 2 on that neighboring pixel (the recursive step). Thus effectively burning any weak edge pixels connected to a strong edge pixel.

The design reaches the recursive end point when it finds no more neighboring weak edge or when it reaches the image boundaries. The design implements this recursive algorithm in software in the ARM processor. Edge-linking is memory based: an entire video frame is available in memory for processing.

Figure 6. Edge Linking OutputShows streaking eliminated and rogue pixels suppressed.