Edge detector
#include "dip_detection.h"
dip_Error dip_Canny ( in, out, sigma, upper, lower )
Input is integer or float; output is binary.
The Canny edge detector finds the ridges in the gradient magnitude, which correspond to the edges in the image. The gradient magnitude (see GradientMagnitude) is computed using Gaussian derivatives, with a sigma of sigma in both dimensions. The found ridges are pruned to remove the less salient edges. A threshold t1 is computed so that the 1-upper fraction of pixels with the highest gradient magnitude are kept. A second threshold, t2 = t1*lower, is selected that determines the minimal gradient magnitude expected of an edge. All edge pixels that exceed t2, and are in the same connected region as at least one pixel that exceeds t1, are selected as the output of this function (see HysteresisThreshold).
Data type | Name | Description |
dip_Image | in | Input |
dip_Image | out | Output |
dip_float | sigma | Sigma parameter for Gaussian derivatives |
dip_float | lower | Lower threshold, as a fraction of upper threshold |
dip_float | upper | Percentile used to compute upper threshold |
This function only works on 2D images.