You are here: Start » Function Reference » Computer Vision » 1D Edge Detection » ScanSingleStripe
ScanSingleStripe
Header: | FIL.h |
---|---|
Namespace: | fil |
Module: | MetrologyBasic |
Locates the strongest pair of edges across a given path.
Applications: Very fast detection or measurement of an object defined by a pair of opposite edges.
Syntax
void fil::ScanSingleStripe ( const fil::Image& inImage, const ScanMap& inScanMap, const StripeScanParams& inStripeScanParams, fil::Selection::Type inStripeSelection, ftl::Optional<const fil::LocalBlindness&> inLocalBlindness, ftl::Conditional<fil::Stripe1D>& outStripe, ftl::Optional<fil::Profile&> outBrightnessProfile = ftl::NIL, ftl::Optional<fil::Profile&> outResponseProfile = ftl::NIL )
Parameters
Name | Type | Default | Description | |
---|---|---|---|---|
inImage | const Image& | Input image | ||
inScanMap | const ScanMap& | Data precomputed with CreateScanMap | ||
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::Best | 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 | ||
outBrightnessProfile | Optional<Profile&> | NIL | Extracted image profile | |
outResponseProfile | Optional<Profile&> | NIL | Profile of the edge (derivative) operator response |
Optional Outputs
The computation of following outputs can be switched off by passing value ftl::NIL
to these parameters: outBrightnessProfile, outResponseProfile.
Read more about Optional Outputs.
Description
The operation scans the image using inScanMap previously generated from a scan path 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.
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
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.
See Also
- CreateScanMap – Precomputes a data object that is required for fast 1D edge detection.
- ScanMultipleStripes – Locates multiple pairs of edges across a given path.
- ScanExactlyNStripes – Locates a specified number of multiple pairs of opposite edges across a given path.
- ScanSingleStripe_Direct – Locates the strongest pair of edges across a given path (without a scan map).