Back to Adaptive Vision Library website

You are here: Start » Function Reference » Computer Vision » 1D Edge Detection » ScanSingleRidge


Header: AVL.h
Namespace: avl
Module: MetrologyBasic

Locates the strongest dark or bright pixel peak along a given path.

Applications: Very fast detection of a thin structure like a wire or a scale mark.


void avl::ScanSingleRidge
	const avl::Image& inImage,
	const ScanMap& inScanMap,
	const RidgeScanParams& inRidgeScanParams,
	avl::Selection::Type inRidgeSelection,
	atl::Optional<const avl::LocalBlindness&> inLocalBlindness,
	atl::Conditional<avl::Ridge1D>& outRidge,
	avl::Profile& diagBrightnessProfile,
	avl::Profile& diagResponseProfile


Name Type Default Description
inImage const Image& Input image
inScanMap const ScanMap& Data precomputed with CreateScanMap
inRidgeScanParams const RidgeScanParams& RidgeScanParams ( ProfileInterpolation: Quadratic4 SmoothingStdDev: 0.6f RidgeWidth: 5 RidgeMargin: 2 MinMagnitude: 5.0f RidgePolarity: Dark ) Parameters controlling the ridge extraction process
inRidgeSelection Selection::Type Selection::​Best Selection mode of the resulting ridge
inLocalBlindness Optional<const LocalBlindness&> NIL Defines conditions in which weaker ridges can be detected in the vicinity of stronger ridges
outRidge Conditional<Ridge1D>& Found ridge
diagBrightnessProfile Profile& Extracted image profile
diagResponseProfile Profile& Profile of the ridge operator response


The operation scans the image using inScanMap previously generated from a scan path and locates the strongest ridge of the given characteristics. If there is no such ridge then the outputs are set to NIL.


  • Adjust inRidgeScanParams.RidgeWidth to the expected thickness of the ridge (in pixels).
  • Define inRidgeScanParams.RidgePolarity to detect a particular ridge type, and only that type.
  • If no ridge is found, try decreasing inRidgeScanParams.MinMagnitude.
  • For difficult cases try different settings of the inRidgeScanParams.RidgeOperator parameter.


ScanSingleRidge locates the strongest ridge using a scan map representing the scan path above.


Read more about Local Coordinate Systems in Machine Vision Guide: Local Coordinate Systems.

This filter is a part of the 1D Edge Detection toolset. For a comprehensive introduction to this technique please refer to 1D Edge Detection and 1D Edge Detection - Subpixel Precision chapters of our Machine Vision Guide.

See Also

  • CreateScanMap – Precomputes a data object that is required for fast 1D edge detection.
  • ScanExactlyNRidges – Locates a specified number of the strongest dark or bright pixel peak along a given path.
  • ScanSingleRidge_Direct – Locates the strongest dark or bright pixel peak along a given path (without a scan map).