Back to Adaptive Vision Library website

You are here: Start » Function Reference » 2D Edge Detection » DetectRidges_AsRegion



Extracts a pixel-precise region of bright or dark thin lines.


void avl::DetectRidges_AsRegion
	const avl::Image& inImage,
	atl::Optional<const avl::Region&> inRoi,
	float inStdDevX,
	atl::Optional<float> inStdDevY,
	float inRidgeThreshold,
	float inRidgeHysteresis,
	avl::Polarity::Type inPolarity,
	const int inMinBlobArea,
	avl::Region& outRidgeRegion


Name Type Range Default Description
inImage const Image& Input image
inRoi Optional<const Region&> NIL Region of interest
inStdDevX float 0.0 - 3.0f Smoothing standard deviation (horizontal)
inStdDevY Optional<float> 0.0 - NIL Smoothing standard deviation (vertical, or Auto = horizontal)
inRidgeThreshold float 0.0 - 5.0f Sufficient ridge strength; ridges of that strength will always be detected
inRidgeHysteresis float 0.0 - 4.0f Value by which the ridge threshold is decreased for ridge points neighboring with sufficiently strong edges
inPolarity Polarity::Type
inMinBlobArea const int 0 - 1 Minimal area of a ridge blob
outRidgeRegion Region&


  • Connect an input image to the inImage input.
  • Set inPolarity in accordance to which type of thin lines you want to detect.
  • Start with inRidgeHysteresis = 0 and set inRidgeThreshold so that each important edge is at least partially detected. Then keep increasing inRidgeHysteresis until the edges are detected completely.
  • If the edges are rugged or there are too many false edges, then try increasing inStdDevX.


For more information about local coordinate systems please refer to the following article.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.