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
Input value
inSurface const Surface& Surface to fit the circle to
Input value
inFittingMap const CircleFittingMap& Input fitting map
Input value
inStripeScanParams const StripeScanParams3D& Parameters controlling the stripe extraction process
Input value
inStripeSelection Selection::Type Selection::​Best Selection mode of stripe
Input value
inLocalBlindness Optional<const LocalBlindness&> NIL Defines conditions in which weaker edges can be detected in the vicinity of stronger edges
Input value
inMaxProfileGapWidth Optional<int> 0 - 1 Maximal number of consecutive not existing profile points
Input value
inMaxIncompleteness float 0.0 - 0.999 0.1f Maximal fraction of stripe points not found
Input value
inFittingMethod CircleFittingMethod::Type AlgebraicTaubin Method used to fit a circle
Input value
inOutlierSuppression Optional<MEstimator::Type> NIL Selects a method for ignoring incorrectly detected points
Output value
outCircle Conditional<Circle3D>& Fitted circle in the middle of found stripe or nothing if the fitting fails
Output value
outInnerCircle Conditional<Circle3D>& Fitted inner circle
Output value
outOuterCircle Conditional<Circle3D>& Fitted outer circle
Output value
outStripes Optional<Array<Conditional<SurfaceStripe1D>>&> NIL Found stripes
Output value
outStripePoints Optional<Array<Point3D>&> NIL Extracted points of middle circle of a surface stripe
Output value
outDeviationProfile Optional<Conditional<Profile>&> NIL Profile of distances between the actual circle points and the corresponding reference circle points
Output value
outHeightProfiles Optional<Array<Profile>&> NIL Extracted surface height profiles
Output value
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.