Back to Aurora Vision Library website
You are here: Start » Function Reference » Computer Vision » Shape Fitting 3D » FitSegmentToStripe3D_Direct
FitSegmentToStripe3D_Direct
Header: | AVL.h |
---|---|
Namespace: | avl |
Module: | Vision3DStandard |
Performs a series of 1D edge detections in 3D and finds a segment that best matches the detected points.
Applications: Precise detection of a straight edge, whose rough location is known beforehand.
Syntax
C++
C#
void avl::FitSegmentToStripe3D_Direct ( const avl::Surface& inSurface, const avl::SegmentFittingField& inFittingField, atl::Optional<const avl::CoordinateSystem2D&> inFittingFieldAlignment, int inScanCount, atl::Optional<float> inSamplingStep, int inScanWidth, const avl::InterpolationMethod::Type inSurfaceInterpolation, const avl::StripeScanParams3D& inStripeScanParams, avl::Selection::Type inStripeSelection, atl::Optional<const avl::LocalBlindness&> inLocalBlindness, atl::Optional<int> inMaxProfileGapWidth, float inMaxIncompleteness, atl::Optional<avl::MEstimator::Type> inOutlierSuppression, atl::Conditional<avl::Segment3D>& outSegment, atl::Conditional<avl::Segment3D>& outLeftSegment, atl::Conditional<avl::Segment3D>& outRightSegment, atl::Optional<atl::Array<atl::Conditional<avl::SurfaceStripe1D>>&> outStripes = atl::NIL, atl::Optional<atl::Array<avl::Point3D>&> outStripePoints = atl::NIL, atl::Optional<atl::Conditional<avl::Profile>&> outDeviationProfile = atl::NIL, atl::Optional<avl::SegmentFittingField&> outAlignedFittingField = atl::NIL, atl::Optional<atl::Array<avl::Profile>&> outHeightProfiles = atl::NIL, atl::Optional<atl::Array<avl::Profile>&> outResponseProfiles = atl::NIL, atl::Array<avl::Segment2D>& diagScanSegments, atl::Array<avl::Rectangle2D>& diagSamplingAreas )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
inSurface | const Surface& | Surface to fit segment to | |||
inFittingField | const SegmentFittingField& | Segment fitting field | |||
inFittingFieldAlignment | Optional<const CoordinateSystem2D&> | NIL | Adjusts the fitting field to the position of the inspected object | ||
inScanCount | int | 3 - | 10 | The number of points that will be searched to estimate the position of the segment | |
inSamplingStep | Optional<float> | 0.0 - | NIL | Desired distance between consecutive sampling points on the scan segments; if Nil, the bigger of surface X and Y scales is chosen | |
inScanWidth | int | 1 - | 5 | The width of each scan field (in pixels) | |
inSurfaceInterpolation | const InterpolationMethod::Type | Bilinear | Interpolation method used for extraction of surface points | ||
inStripeScanParams | const StripeScanParams3D& | StripeScanParams3D ( ProfileInterpolation: Quadratic4 SmoothingStdDev: 1.0f MinMagnitude: 5.0f MaxInnerEdgeMagnitude: Nil MinStripeWidth: 0.0f MaxStripeWidth: Nil StripePolarity: High ) | Parameters controlling the stripe extraction process | ||
inStripeSelection | Selection::Type | Selection mode of stripe | |||
inLocalBlindness | Optional<const LocalBlindness&> | NIL | Defines conditions in which weaker edges can be detected in the vicinity of stronger edges | ||
inMaxProfileGapWidth | Optional<int> | 0 - | 1 | Maximal number of consecutive not existing profile points | |
inMaxIncompleteness | float | 0.0 - 0.999 | 0.1f | Maximal fraction of stripe points not found | |
inOutlierSuppression | Optional<MEstimator::Type> | NIL | Selects a method for ignoring incorrectly detected points | ||
outSegment | Conditional<Segment3D>& | Fitted segment or nothing if the fitting fails | |||
outLeftSegment | Conditional<Segment3D>& | Fitted left segment | |||
outRightSegment | Conditional<Segment3D>& | Fitted right segment | |||
outStripes | Optional<Array<Conditional<SurfaceStripe1D>>&> | NIL | Found stripes | ||
outStripePoints | Optional<Array<Point3D>&> | NIL | Extracted points of middle segment of a surface stripe | ||
outDeviationProfile | Optional<Conditional<Profile>&> | NIL | Profile of distances between the actual segment points and the corresponding reference segment points | ||
outAlignedFittingField | Optional<SegmentFittingField&> | NIL | Fitting field used; in the image coordinate system | ||
outHeightProfiles | Optional<Array<Profile>&> | NIL | Extracted surface height profiles | ||
outResponseProfiles | Optional<Array<Profile>&> | NIL | Profiles of the edge (derivative) operator response | ||
diagScanSegments | Array<Segment2D>& | Segments along which the scans were run | |||
diagSamplingAreas | Array<Rectangle2D>& | Areas from which the input image is sampled |
Optional Outputs
The computation of following outputs can be switched off by passing value atl::NIL
to these parameters: outStripes, outStripePoints, outDeviationProfile, outAlignedFittingField, outHeightProfiles, outResponseProfiles.
Read more about Optional Outputs.
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | Sampling step set to zero in FitSegmentToStripe3D. |