Back to FabImage Library website
You are here: Start » Function Reference » Computer Vision » Shape Adjustment » AdjustPathArraysToEdges

AdjustPathArraysToEdges
Header: | FIL.h |
---|---|
Namespace: | fil |
Module: | FoundationPro |
Translates, rotates and scales multiple contour sets (PathArray), each separately, to the edges of the input image with subpixel precision.
Applications: Fine-tune results of edge-based template matching.
Syntax
C++
C#
void fil::AdjustPathArraysToEdges ( const fil::Image& inImage, const ftl::Array<ftl::Array<fil::Path>>& inPaths, ftl::Optional<float> inPointSpacing, ftl::Optional<const ftl::Array<fil::CoordinateSystem2D>&> inAlignments, float inAttractionRadius, fil::AdjustmentMetric::Type inAdjustmentMetric, bool inAdjustTranslation, bool inAdjustRotation, bool inAdjustScale, int inIterationCount, float inBaseGradient, ftl::Array<ftl::Array<fil::Path>>& outAdjustedPaths, ftl::Array<fil::CoordinateSystem2D>& outAlignments, ftl::Array<ftl::Array<fil::Segment2D>>& diagAttractionVectors )
Parameters
Name | Type | Range | Default | Description | |
---|---|---|---|---|---|
![]() |
inImage | const Image& | Input image. | ||
![]() |
inPaths | const Array<Array<Path>>& | Paths to be adjusted. For sparse, synthetic paths the inPointSpacing needs to be specified. | ||
![]() |
inPointSpacing | Optional<float> | 1.0 - ![]() |
NIL | If set, sampling points of the input path will be equidistant with specified spacing. Useful for increasing density of synthetic, sparse paths. |
![]() |
inAlignments | Optional<const Array<CoordinateSystem2D>&> | NIL | Alignments to be corrected, usually connect to outObjects.Alignment[] of LocateObjects:Multiple filter. | |
![]() |
inAttractionRadius | float | 0.1 - ![]() |
2.0f | Expected initial distance between inPaths and edges of the input image. |
![]() |
inAdjustmentMetric | AdjustmentMetric::Type | SegmentDistance | Metric used for path attraction. The SegmentDistance minimizes distances along path normal vectors, and thus adjustment is more accurate. PointDistance_* minimize euclidean distance, adjustment tends to be more stable. | |
![]() |
inAdjustTranslation | bool | True | Compute the translation part of adjustment transform. Must be true when using AttractPathTangents estimation method. | |
![]() |
inAdjustRotation | bool | True | Compute the rotation part of adjustment transform. | |
![]() |
inAdjustScale | bool | False | Compute the scale part of adjustment transform. | |
![]() |
inIterationCount | int | 0 - 100 | 6 | Number of iterations of internal adjustment algorithm. |
![]() |
inBaseGradient | float | 0.1 - ![]() |
1.0f | Threshold for suppression of weak input image gradients. Increase for very noisy images. |
![]() |
outAdjustedPaths | Array<Array<Path>>& | Adjusted output paths. | ||
![]() |
outAlignments | Array<CoordinateSystem2D>& | Corrected alignments - inAlignments input modified with estimated adjustment parameters. | ||
![]() |
diagAttractionVectors | Array<Array<Segment2D>>& | Attraction vectors from first iteration. |
Hints
- This filter is a multiple object version of AdjustPathArrayToEdges, however it achieves much higher performance than AdjustPathArrayToEdges executed in a loop.
- Please refer to AdjustPathArrayToEdges documentation for more information.
Hardware Acceleration
This operation is optimized for SSSE3 technology for pixels of type: UINT8.
This operation is optimized for AVX2 technology for pixels of type: UINT8.
This operation is optimized for NEON technology for pixels of type: UINT8.
This operation supports automatic parallelization for multicore and multiprocessor systems.
Errors
List of possible exceptions:
Error type | Description |
---|---|
DomainError | inPaths and inAlignments have different size |
DomainError | To use SegmentDistance adjustment metric, inAdjustTranslation must be enabled. |
See Also
- AdjustPathArrayToEdges – Translates, rotates and scales the given contour set to the edges of the input image with subpixel precision.
- EnhanceSingleObjectMatch – Improves accuracy of single object matching by adding a subpixel-precise adjustment.
- EnhanceMultipleObjectMatches – Improves accuracy of multiple object matching by adding a subpixel-precise adjustment.