finds edges in image and returns the result as a binary image.


finds edges at the scale of the specified pixel range r.


uses a threshold t for selecting image edges.

Details and Options

  • Edges of an image are a set of points between image regions and are typically computed by linking high-gradient pixels. In practice, an edge can have an arbitrary shape.
  • EdgeDetect uses gradient methods to find edges and works with arbitrary 2D and 3D images.
  • EdgeDetect[image] is equivalent to EdgeDetect[image,2].
  • The following range specifications r can be used:
  • rradius r in every dimension (default r=2)
    {rrow,rcol}in 2D, range rrow in height, rcol in width
    {rslice,rrow,rcol}in 3D, range rslice in height, rrow in depth, and rcol in width
  • EdgeDetect[image,r,t] uses hysteresis thresholding with a global threshold t. For additional forms of the threshold parameter, see the reference page for MorphologicalBinarize.
  • The following options can be specified:
  • Method Automaticedge detection method
    Padding"Fixed"padding method
  • Possible settings for Method include:
  • "Canny"first-order directional Gaussian derivatives (default)
    "ShenCastan"first-order derivatives of exponentials
    "Sobel"binomial generalization of Sobel masks
  • By default, all straight and curved edges are returned. Selection of edges based on their straightness can be done by setting Method->{"method","StraightEdges"->s}. The default behavior is equivalent to "StraightEdges"->0. A setting "StraightEdges"->1 selects only the longest and strongest lines.
  • "StraightEdges" is ignored when used with Image3D objects.


open allclose all

Basic Examples  (1)

Detecting edges in a color image:

Scope  (4)

Find edges in a color image:

Specify the scale of edges to detect:

Specify larger scale to detect coarse features:

Edge selection using an explicit global threshold:

Edges of a 3D image:

Options  (2)

Method  (2)

ShenCastan edge detection:

By default, all edges are returned, regardless of their straightness:

Filter detected edges with their straightness:

Properties & Relations  (1)

EdgeDetect might return edges that are thicker than one pixel:

Use Thinning to get single-pixel-wide edges:

Wolfram Research (2010), EdgeDetect, Wolfram Language function, https://reference.wolfram.com/language/ref/EdgeDetect.html (updated 2014).


Wolfram Research (2010), EdgeDetect, Wolfram Language function, https://reference.wolfram.com/language/ref/EdgeDetect.html (updated 2014).


Wolfram Language. 2010. "EdgeDetect." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/EdgeDetect.html.


Wolfram Language. (2010). EdgeDetect. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EdgeDetect.html


@misc{reference.wolfram_2024_edgedetect, author="Wolfram Research", title="{EdgeDetect}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/EdgeDetect.html}", note=[Accessed: 24-July-2024 ]}


@online{reference.wolfram_2024_edgedetect, organization={Wolfram Research}, title={EdgeDetect}, year={2014}, url={https://reference.wolfram.com/language/ref/EdgeDetect.html}, note=[Accessed: 24-July-2024 ]}