Back to FabImage Library website
You are here: Start » Function Reference » Computer Vision » Shape Fitting 3D » FitCircleToStripe3D

FitCircleToStripe3D
Header: | FIL.h |
---|---|
Namespace: | fil |
Module: | Vision3DStandard |
Performs a series of 1D edge detections and finds a circle that best matches the detected points.
Applications: Precise detection of a circular object or hole, whose rough location is known beforehand.
Syntax
C++
C#
void fil::FitCircleToStripe3D ( const fil::Surface& inSurface, const CircleFittingMap& inFittingMap, const StripeScanParams3D& inStripeScanParams, fil::Selection::Type inStripeSelection, ftl::Optional<const fil::LocalBlindness&> inLocalBlindness, ftl::Optional<int> inMaxProfileGapWidth, float inMaxIncompleteness, fil::CircleFittingMethod::Type inFittingMethod, ftl::Optional<fil::MEstimator::Type> inOutlierSuppression, ftl::Conditional<fil::Circle3D>& outCircle, ftl::Conditional<fil::Circle3D>& outInnerCircle, ftl::Conditional<fil::Circle3D>& outOuterCircle, ftl::Optional<ftl::Array<ftl::Conditional<fil::SurfaceStripe1D>>&> outStripes = ftl::NIL, ftl::Optional<ftl::Array<fil::Point3D>&> outStripePoints = ftl::NIL, ftl::Optional<ftl::Conditional<fil::Profile>&> outDeviationProfile = ftl::NIL, ftl::Optional<ftl::Array<fil::Profile>&> outHeightProfiles = ftl::NIL, ftl::Optional<ftl::Array<fil::Profile>&> outResponseProfiles = ftl::NIL )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
![]() |
inSurface | const Surface& | Surface to fit the circle to | ||
![]() |
inFittingMap | const CircleFittingMap& | Input fitting map | ||
![]() |
inStripeScanParams | const StripeScanParams3D& | Parameters controlling the stripe extraction process | ||
![]() |
inStripeSelection | Selection::Type | Selection::Best | 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 |
![]() |
inFittingMethod | CircleFittingMethod::Type | AlgebraicTaubin | Method used to fit a circle | |
![]() |
inOutlierSuppression | Optional<MEstimator::Type> | NIL | Selects a method for ignoring incorrectly detected points | |
![]() |
outCircle | Conditional<Circle3D>& | Fitted circle in the middle of found stripe or nothing if the fitting fails | ||
![]() |
outInnerCircle | Conditional<Circle3D>& | Fitted inner circle | ||
![]() |
outOuterCircle | Conditional<Circle3D>& | Fitted outer circle | ||
![]() |
outStripes | Optional<Array<Conditional<SurfaceStripe1D>>&> | NIL | Found stripes | |
![]() |
outStripePoints | Optional<Array<Point3D>&> | NIL | Extracted points of middle circle of a surface stripe | |
![]() |
outDeviationProfile | Optional<Conditional<Profile>&> | NIL | Profile of distances between the actual circle points and the corresponding reference circle points | |
![]() |
outHeightProfiles | Optional<Array<Profile>&> | NIL | Extracted surface height profiles | |
![]() |
outResponseProfiles | Optional<Array<Profile>&> | NIL | Profiles 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: outStripes, outStripePoints, outDeviationProfile, outHeightProfiles, outResponseProfiles.
Read more about Optional Outputs.
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.