Visible to Intel only — GUID: dmi1421146371103
Ixiasoft
1.1. About Canny Edge Detection
1.2. About the Canny Edge Detection Reference Design
1.3. Getting Started with the Canny Edge Reference Design
1.4. Canny Edge Detection Reference Design Block Description
1.5. Stream-to-Memory Conversion
1.6. Latency and Throughput
1.7. Canny Edge Reference Design Resource Usage
1.3.1. Hardware and Software Requirements
1.3.2. Connecting the Hardware to Use the Canny Edge Reference Design
1.3.3. Loading the Canny Edge Reference Design FPGA Image with the SD Card Image
1.3.4. Canny Edge Reference Design Initial Startup Problems
1.3.5. Controlling the FPGA Flow of the Canny Edge Reference Design
1.3.6. Capturing the Pixel Stream
1.3.7. Programming the FPGA with the Canny Edge Reference Design
1.3.8. Initializing the ARM Processor
Visible to Intel only — GUID: dmi1421146371103
Ixiasoft
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.