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

FisFilter_FitSegmentToEdges3D
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_FitSegmentToEdges3D ( FitSegmentToEdges3DState& 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::EdgeScanParams3D& inEdgeScanParams, fil::Selection::Type inEdgeSelection, ftl::Optional<const fil::LocalBlindness&> inLocalBlindness, ftl::Optional<int> inMaxProfileGapWidth, float inMaxIncompleteness, ftl::Optional<fil::MEstimator::Type> inOutlierSuppression, ftl::Conditional<fil::Segment3D>& outSegment, ftl::Optional<ftl::Array<ftl::Conditional<fil::SurfaceEdge1D> >&> outEdges = ftl::NIL, ftl::Optional<ftl::Conditional<fil::Profile>&> outDeviationProfile = ftl::NIL, ftl::Optional<fil::SegmentFittingField&> outAlignedFittingField = ftl::NIL, ftl::Optional<ftl::Array<fil::Point3D>&> outInliers = 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 | FitSegmentToEdges3DState& | 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 | |
![]() |
inEdgeScanParams | const EdgeScanParams3D& | EdgeScanParams3D ( ProfileInterpolation: Quadratic4 SmoothingStdDev: 1.0f MinMagnitude: 5.0f EdgeTransition: LowToHigh ) | Parameters controlling the edge extraction process | |
![]() |
inEdgeSelection | Selection::Type | Selection mode of edges | ||
![]() |
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 edge 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 | ||
![]() |
outEdges | Optional<Array<Conditional<SurfaceEdge1D> >&> | NIL | Found edges | |
![]() |
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 | |
![]() |
outInliers | Optional<Array<Point3D>&> | NIL | Points matching the fitting segment | |
![]() |
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: outEdges, outDeviationProfile, outAlignedFittingField, outInliers.
Read more about Optional Outputs.
Hardware Acceleration
This operation supports automatic parallelization for multicore and multiprocessor systems.