Canny Edge Detection Filter

Canny Edge Detection Filter written in C with NVIDIA CUDA


Overview

Personnal project made with CUDA in pure C that implements the Canny edge detection filter.

Steps of the detection:

  1. Gaussian blur pass to reduce high frequencies in the image (reduces the risk of false positive edge detections due to the noise in the image)
  2. Sobel filter to detect edges (gradients)
  3. Apply a threshold to eliminate edges (gradients) that are too weak
  4. Double thresholding: separates “weak” from “strong” edges according to 2 thresholds given at execution.
  5. Hysteresis to keep only significant edges : “strong” edges or “weak” edges connected to a strong edge (8-connexity)
Image source: wikipedia

Github

This project is open-source on Github: CUDA Canny Edge Detection