Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

Which edge or feature detector do I need?

A raw gradient, the full Canny pipeline, or a corner detector -- and when each one is the right tool.

Reach for this once the question moves from "smooth this image" to "find structure in it." A single gradient magnitude answers "how much does intensity change here"; the full Canny pipeline turns that into clean, thin, connected edge curves; and a corner detector answers a genuinely different question -- not "is there an edge here" but "is this point locatable and matchable again in a second image."

Step 1 -- do you need a raw gradient, or finished edge curves?

Named 3x3 kernels approximating the image gradient with built-in perpendicular smoothing.

Example

Feeding a gradient magnitude map into a later stage (e.g. the Harris structure tensor) that doesn't need clean binary edges.

A single per-pixel gradient estimate -- fast, no thresholding pipeline, still noise-sensitive on its own.

A five-stage pipeline producing thin, well-localized, reliably-detected edges.

Example

Extracting a document's straight boundary edges before finding its four corners (Chapter 6's perspective-correction pipeline).

Thin, well-localized, single-response edge curves ready to hand to a segmentation or shape-finding step.

Step 2 -- inside Canny: what turns a raw gradient into clean edges?

A two-threshold, connectivity-based rule for accepting or rejecting edge pixels.

Example

A weak-gradient pixel that's disconnected from any strong edge gets discarded as noise; one touching a strong edge chain survives.

The two-threshold, connectivity-based rule Canny's last stage uses to decide which weak-gradient pixels survive.

Step 3 -- do you need to find the SAME point again in another image?

A response function R = det(M) - k*trace(M)^2, built from a window's own gradient products, that classifies a pixel flat/edge/corner with no eigensolver required.

Example

Matching a chessboard's corners across two photos taken from different angles, the way panorama stitching needs to.

Edges alone are ambiguous along their own length (the aperture problem) -- a corner is the feature that's actually locatable and matchable point-to-point.

Full pipelines, worked through end to end

Graph settings

Calculator