Back to FabImage Library website

You are here: Start » Function Reference » Shape Fitting 3D » FisFilter_FitSegmentToStripe3D

FisFilter_FitSegmentToStripe3D


This is Filter Equivalent. This function may be present in generated code, but should not be used in hand-written code.

Header:FIL.h
Namespace:fis

Performs a series of 1D edge detections in 3D and finds a segment that best matches the detected points.

Syntax

void fis::FisFilter_FitSegmentToStripe3D
(
	FitSegmentToStripe3DState& ioState,
	const fil::Surface& inSurface,
	const fil::SegmentFittingField& inFittingField,
	ftl::Optional<const fil::CoordinateSystem2D&> inFittingFieldAlignment,
	int inScanCount,
	ftl::Optional<float> inSamplingStep,
	int inScanWidth,
	const fil::InterpolationMethod::Type inSurfaceInterpolation,
	const fil::StripeScanParams3D& inStripeScanParams,
	fil::Selection::Type inStripeSelection,
	ftl::Optional<const fil::LocalBlindness&> inLocalBlindness,
	ftl::Optional<int> inMaxProfileGapWidth,
	float inMaxIncompleteness,
	ftl::Optional<fil::MEstimator::Type> inOutlierSuppression,
	ftl::Conditional<fil::Segment3D>& outSegment,
	ftl::Conditional<fil::Segment3D>& outLeftSegment,
	ftl::Conditional<fil::Segment3D>& outRightSegment,
	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<fil::SegmentFittingField&> outAlignedFittingField = ftl::NIL,
	ftl::Array<fil::Segment2D>& diagScanSegments,
	ftl::Array<fil::Rectangle2D>& diagSamplingAreas,
	ftl::Array<fil::Profile>& diagHeightProfiles,
	ftl::Array<fil::Profile>& diagResponseProfiles
)

Parameters

Name Type Range Default Description
ioState FitSegmentToStripe3DState& Object used to maintain state of the function.
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> 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
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 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, outAlignedFittingField.

Read more about Optional Outputs.

Hardware Acceleration

This operation supports automatic parallelization for multicore and multiprocessor systems.