Back to Adaptive Vision Library website

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


Header: AVL.h
Namespace: avl
Module: MetrologyBasic

Locates the strongest transition between dark and bright pixels along a given path.

Applications: Very fast detection of an object (e.g. horizontal displacement of a bottle) and simple measurements (e.g. liquid level in a bottle).


void avl::ScanSingleEdge
	const avl::Image& inImage,
	const avl::ScanMap& inScanMap,
	const avl::EdgeScanParams& inEdgeScanParams,
	avl::Selection::Type inEdgeSelection,
	atl::Optional<const avl::LocalBlindness&> inLocalBlindness,
	atl::Conditional<avl::Edge1D>& outEdge,
	avl::Profile& diagBrightnessProfile,
	avl::Profile& diagResponseProfile


Name Type Default Description
inImage const Image& Input image
inScanMap const ScanMap& Data precomputed with CreateScanMap
inEdgeScanParams const EdgeScanParams& EdgeScanParams ( ProfileInterpolation: Quadratic4 SmoothingStdDev: 0.6f MinMagnitude: 5.0f EdgeTransition: BrightToDark ) Parameters controlling the edge extraction process
inEdgeSelection Selection::Type Selection::​Best Selection mode of the resulting edge
inLocalBlindness Optional<const LocalBlindness&> NIL Defines conditions in which weaker edges can be detected in the vicinity of stronger edges
outEdge Conditional<Edge1D>& Found edge
diagBrightnessProfile Profile& Extracted image profile
diagResponseProfile Profile& Profile of the edge (derivative) operator response


The operation scans the image using inScanMap previously generated from a scan path and locates the strongest edge perpendicular to the path. If the strongest edge is weaker than inEdgeScanParams.minMagnitude then the outputs are set to NIL.


  • Define inEdgeScanParams.EdgeTransition to detect a particular edge type, and only that type.
  • If no edge is found, try decreasing inEdgeScanParams.MinMagnitude. Verify this with the values on the diagResponseProfile output.
  • If consecutive edges are closer than 6 pixels apart, change inEdgeScanParams.ProfileInterpolation to Quadratic3.


ScanSingleEdge locates the strongest edge 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.
  • ScanMultipleEdges – Locates multiple transitions between dark and bright pixels along a given path.
  • ScanExactlyNEdges – Locates a specified number of the strongest transitions between dark and bright pixels along a given path.
  • ScanSingleEdge_Direct – Locates the strongest transition between dark and bright pixels along a given path (without a scan map).