Back to Aurora Vision Library website

# ScanSingleStripe_Direct

Locates the strongest pair of edges across a given path (without a scan map).

Applications: Very fast detection or measurement of an object defined by a pair of opposite edges.

### Syntax

C++
C#

void avl::ScanSingleStripe_Direct
(
const avl::Image& inImage,
const avl::Path& inScanPath,
atl::Optional<const avl::CoordinateSystem2D&> inScanPathAlignment,
int inScanWidth,
const avl::SamplingParams& inSamplingParams,
const avl::StripeScanParams& inStripeScanParams,
avl::Selection::Type inStripeSelection,
atl::Optional<const avl::LocalBlindness&> inLocalBlindness,
atl::Conditional<avl::Stripe1D>& outStripe,
atl::Optional<avl::Path&> outAlignedScanPath = atl::NIL,
atl::Optional<avl::Profile&> outBrightnessProfile = atl::NIL,
atl::Optional<avl::Profile&> outResponseProfile = atl::NIL,
atl::Array<avl::Path>& diagSamplingPoints,
float& diagSamplingStep
)


### Parameters

Name Type Range Default Description
inImage const Image& Input image
inScanPath const Path& Path along which the scan is performed
inScanPathAlignment Optional<const CoordinateSystem2D&> NIL Adjusts the scan path to the position of the inspected object
inScanWidth int 1 - 5 Width of the scan field in pixels
inSamplingParams const SamplingParams& SamplingParams ( Interpolation: Bilinear SamplingStep: 1.0f SampleCount: Nil ) Parameters controlling the sampling process
inStripeScanParams const StripeScanParams& StripeScanParams ( ProfileInterpolation: Quadratic4 SmoothingStdDev: 0.6f MinMagnitude: 5.0f MaxInnerEdgeMagnitude: Nil StripePolarity: Dark MinStripeWidth: 0.0f MaxStripeWidth: Nil ) Parameters controlling the stripe extraction process
inStripeSelection Selection::Type Selection mode of the resulting stripe
inLocalBlindness Optional<const LocalBlindness&> NIL Defines conditions in which weaker edges can be detected in the vicinity of stronger edges
outStripe Conditional<Stripe1D>& Found stripe
outAlignedScanPath Optional<Path&> NIL Transformed input path
outBrightnessProfile Optional<Profile&> NIL Extracted image profile
outResponseProfile Optional<Profile&> NIL Profile of the edge (derivative) operator response
diagSamplingPoints Array<Path>& Array of paths each one containing the sampling points that contributes to a single value of the extracted profile
diagSamplingStep float& Used distance between consecutive sampling points on the scan path

### Optional Outputs

The computation of following outputs can be switched off by passing value atl::NIL to these parameters: outAlignedScanPath, outBrightnessProfile, outResponseProfile.

### Description

The operation scans the image along inScanPath and locates the strongest stripe (i.e. a pair of opposite-polarity edges running across the path) of the given characteristics. If there is no such stripe then the outputs are set to NIL.

The optional parameter inScanPathAlignment defines a transform to be performed on the inScanPath so that the actual scan path (outAlignedScanPath) is adjusted to the position of the object, typically detected by one of Template Matching filters.

### Hints

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

### Examples

ScanSingleStripe_Direct locates the strongest stripe across inScanPath.

### Remarks

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.