Start » Filter Reference » OpenCV » Feature Detection » cvCanny

cvCanny


Module: OpenCV

Finds edges in an image using Canny algorithm.

Name Type Range Description
Input value
inImage Image Single-channel UINT8 input image.
Input value
inThreshold1 Real First threshold for the hysteresis procedure.
Input value
inThreshold2 Real Second threshold for the hysteresis procedure.
Input value
inApertureSize Integer 3 - 7 Aperture size for the Sobel operator.
Input value
inL2gradient Bool Flag indicating whether a more accurate norm should be used to compute the image gradient magnitude.
Output value
outEdges Image Output edge map.

Description

The operation detects edges in the input image and marks them on the outEdges image, setting pixel value to 255 for edges' pixels, and 0 otherwise. Canny algorithm works as follows:

  • calculates gradients in the image using sobel operator
  • detects strong edges, as pixels which have gradient value higher than inThreshold1
  • extends strong edges as long as neighbour pixels have gradient value higher than inThreshold2
  • narrows edges, as they could get quite wide in previous step, applying non-maxima suppression

Examples

cvCanny performed on the sample image with inThreshold1 = 140, inThreshold2 = 70, inApertureSize = 3.

Errors

This filter can throw an exception to report error. Read how to deal with errors in Error Handling.

List of possible exceptions:

Error type Description
DomainError inApertureSize must be 3, 5 or 7 in cvCanny.
DomainError Input image must be single-channel UINT8 in cvCanny.

Complexity Level

This filter is available on Basic Complexity Level.