Back to Adaptive Vision Library website
You are here: Start » Function Reference » Shape Fitting 3D » AvsFilter_FitCircleToRidges3D
AvsFilter_FitCircleToRidges3D
This is Filter Equivalent. This function may be present in generated code, but should not be used in hand-written code.
Performs a series of 1D ridge detections in 3D and finds a circle that best matches the detected points.
Header: | AVL.h |
---|
Syntax
void avs::AvsFilter_FitCircleToRidges3D ( FitCircleToRidges3DState& ioState, const avl::Surface& inSurface, const avl::CircleFittingField& inFittingField, atl::Optional<const avl::CoordinateSystem2D&> inFittingFieldAlignment, int inScanCount, int inScanWidth, const avl::InterpolationMethod::Type inSurfaceInterpolation, const avl::RidgeScanParams3D& inRidgeScanParams, avl::Selection::Type inRidgeSelection, atl::Optional<const avl::LocalBlindness&> inLocalBlindness, atl::Optional<int> inMaxProfileGapWidth, float inMaxIncompleteness, avl::CircleFittingMethod::Type inFittingMethod, atl::Optional<avl::MEstimator::Type> inOutlierSuppression, atl::Conditional<avl::Circle3D>& outCircle, atl::Optional<atl::Array<atl::Conditional<avl::SurfaceRidge1D> >&> outRidges = atl::NIL, atl::Optional<atl::Conditional<avl::Profile>&> outDeviationProfile = atl::NIL, atl::Optional<avl::CircleFittingField&> outAlignedFittingField = atl::NIL, atl::Array<avl::Segment2D>& diagScanSegments, atl::Array<avl::Rectangle2D>& diagSamplingAreas, atl::Array<avl::Profile>& diagHeightProfiles, atl::Array<avl::Profile>& diagResponseProfiles )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
ioState | FitCircleToRidges3DState& | Object used to maintain state of the function. | |||
inSurface | const Surface& | Surface to fit the circle to | |||
inFittingField | const CircleFittingField& | Circle 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 circle | |
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 | ||
inRidgeScanParams | const RidgeScanParams3D& | RidgeScanParams3D ( ProfileInterpolation: Quadratic4 SmoothingStdDev: 0.6f RidgeWidth: 5.0f RidgeMargin: 2.0f RidgeOperator: Minimum MinMagnitude: 5.0f RidgePolarity: Low ) | Parameters controlling the ridge extraction process | ||
inRidgeSelection | Selection::Type | Selection mode of ridges | |||
inLocalBlindness | Optional<const LocalBlindness&> | NIL | Defines conditions in which weaker ridges can be detected in the vicinity of stronger ridges | ||
inMaxProfileGapWidth | Optional<int> | 0 - | NIL | Maximal number of consecutive not existing profile points | |
inMaxIncompleteness | float | 0.0 - 0.999 | 0.1f | Maximal fraction of ridge 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 or nothing if the fitting fails | |||
outRidges | Optional<Array<Conditional<SurfaceRidge1D> >&> | NIL | Found ridges | ||
outDeviationProfile | Optional<Conditional<Profile>&> | NIL | Profile of distances between the actual circle points and the corresponding reference circle points | ||
outAlignedFittingField | Optional<CircleFittingField&> | NIL | Fitting field used; in the image coordinate system | ||
diagScanSegments | Array<Segment2D>& | Segments along which the scans were run | |||
diagSamplingAreas | Array<Rectangle2D>& | Areas from which the input image is sampled | |||
diagHeightProfiles | Array<Profile>& | Extracted surface height profiles | |||
diagResponseProfiles | Array<Profile>& | Profiles of the ridge operator response |
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.