Canny Edge Detection
Edges are one of the most important features in any image. They define the boundaries of objects, their shapes, and their structure.
Canny Edge Detection is one of the most reliable and widely used edge detection algorithms in computer vision. It is designed to detect edges accurately while reducing noise and false detections.
This lesson explains how Canny works conceptually, why it is better than simple edge detectors, and where it is used in real-world systems.
What Is an Edge?
An edge is a location in an image where there is a sharp change in intensity.
Edges usually correspond to:
- Object boundaries
- Changes in surface orientation
- Different materials or colors
Detecting edges helps computers understand “where things begin and end” in an image.
Why Simple Edge Detection Is Not Enough
Earlier edge detectors like Sobel or Prewitt only calculate gradients. They are fast, but they have problems:
- Very sensitive to noise
- Detect thick or broken edges
- Produce many false edges
Canny Edge Detection was designed to solve these problems systematically.
The Goal of the Canny Algorithm
Canny Edge Detection aims to satisfy three main goals:
- Good detection: detect real edges, not noise
- Good localization: edges should be accurately placed
- Single response: one edge per boundary
To achieve this, Canny uses a multi-step process.
Step 1: Noise Reduction (Smoothing)
Before detecting edges, the image is smoothed to remove noise.
This is usually done using a Gaussian Blur.
Why this matters:
- Noise creates false edges
- Smoothing improves stability
Without this step, edge detection becomes unreliable.
Step 2: Gradient Calculation
After smoothing, the algorithm calculates the intensity gradient of the image.
This tells us:
- How strong the edge is
- The direction of the edge
Canny typically uses Sobel operators internally to compute these gradients.
Step 3: Non-Maximum Suppression
This step makes edges thin and precise.
Instead of keeping thick edge regions, Canny keeps only the strongest pixel along the gradient direction.
Result:
- Sharp, one-pixel-wide edges
- No blurry boundaries
This step greatly improves visual clarity.
Step 4: Double Thresholding
Not all detected edges are equally important. Canny classifies edges using two thresholds:
- High threshold: strong edges (definitely real)
- Low threshold: weak edges (possibly real)
Pixels below the low threshold are discarded.
Step 5: Edge Tracking by Hysteresis
Weak edges are kept only if they are connected to strong edges.
This prevents:
- Broken edges
- Random noise responses
The final output contains clean, continuous edges.
Why Canny Is So Popular
Canny Edge Detection is widely used because:
- It balances noise reduction and accuracy
- Produces thin, clean edges
- Works well across many image types
Many advanced CV pipelines start with Canny.
Real-World Applications
Canny Edge Detection is used in:
- Lane detection in self-driving cars
- Document scanning and OCR preprocessing
- Medical image boundary detection
- Object detection pipelines
- Robotics and navigation
Edges often form the foundation for higher-level vision tasks.
Where You Will Implement This
You will implement Canny Edge Detection using:
- OpenCV (cv2.Canny)
- Grayscale images
Recommended environments:
- Google Colab (fast and simple)
- Local Python with OpenCV
You will visually compare original images with detected edges.
Practice Questions
Q1. Why is Gaussian blur applied before edge detection?
Q2. What is the purpose of non-maximum suppression?
Q3. Why does Canny use two thresholds?
Homework / Observation Task
- Observe edges in road images or documents
- Think which edges are strong vs weak
- Predict how thresholds affect results
This mental model will help when you write code.
Quick Recap
- Canny is a multi-step edge detection algorithm
- Noise reduction is essential
- Non-maximum suppression sharpens edges
- Double thresholds improve reliability
- Canny is used in many real systems
In the next lesson, you will learn about Hough Transform, which uses edges to detect lines and shapes.