PCLCloudDistances¶
-
MLModule
¶ genre PCLCommon
author Wolf Spindler
package FMEstable/PCL
dll MLPCLCommon
definition MLPCLCommon.def see also XMarkerListDistance
,itkHausdorffDistanceImageFilter
inherits from PCLModule
keywords points
,clouds
,PCL
,distance
,metric
Purpose¶
PCLCloudDistances
calculates distances between two point clouds connected to inputPCLObject0
and inputPCLObject1
, respectively. Point positions as well as indexes into related points in the point clouds are also provided for easy use of this information in other modules, or in order to forward it via field connections.
Currently two well known distances are calculated, the Hausdorff (see https://en.wikipedia.org/wiki/Hausdorff_distance) and the minimum euclidean distance where two points, one in each point cloud, are searched with minimal distances. Note that for both distances the results are deterministically calculated, however not necessarily unique, because multiple solutions may exists depending on the point clouds fed into the module and on the order of points in them.
The complexity of PCLCloudDistances
usually should be O(n*log(n)), however, it has not been investigated whether internally used k-d trees can degenerate for specific input point clouds and how that could influence the complexity.
Input Fields¶
inputPCLObject0¶
-
name:
inputPCLObject0
, type:
MLBase
¶ The first of the two needed point clouds; must be valid and contain at least one point to make
Results Valid
valid.
inputPCLObject1¶
-
name:
inputPCLObject1
, type:
MLBase
¶ The second of the two needed point clouds; must be valid and contain at least one point to make
Results Valid
valid.
Parameter Fields¶
Field Index¶
Hausdorff : Float |
Input 1 to 0 (input1ToInput0Position0) : Vector3 |
Results Valid : Bool |
Input 0 to 1 (input0ToInput1Distance) : Float |
Input01Min Distance Index1 : Integer |
Status : String |
Input 0 to 1 (input0ToInput1Index0) : Integer |
Input01Min Distance Position1 : Vector3 |
|
Input 0 to 1 (input0ToInput1Position0) : Vector3 |
Input0To Input1Index1 : Integer |
|
Input 01 Min (input01MinDistanceIndex0) : Integer |
Input0To Input1Position1 : Vector3 |
|
Input 01 Min (input01MinDistancePosition0) : Vector3 |
Input1To Input0Index1 : Integer |
|
Input 1 To 0 (input1ToInput0Distance) : Float |
Input1To Input0Position1 : Vector3 |
|
Input 1 to 0 (input1ToInput0Index0) : Integer |
Minimum : Float |
Visible Fields¶
Input 0 to 1 (input0ToInput1Distance)¶
-
name:
input0ToInput1Distance
, type:
Float
, persistent:
no
¶ The maximum possible distance of any point of
inputPCLObject0
to the nearest point ofinputPCLObject1
, valid only ifResults Valid
is on, otherwise -FLT_MAX.
Input 0 to 1 (input0ToInput1Index0)¶
-
name:
input0ToInput1Index0
, type:
Integer
, persistent:
no
¶ The index of the (or a) farest point in
inputPCLObject0
to a nearest one ininputPCLObject1
(corresponding toInput 0 to 1
), valid only ifResults Valid
is on, otherwise INT_MIN.
Input0To Input1Index1¶
-
name:
input0ToInput1Index1
, type:
Integer
, persistent:
no
¶ The index of the (or one) nearest point in
inputPCLObject1
to a the (or a) farest one ininputPCLObject0
(corresponding toInput 0 to 1
), valid only ifResults Valid
is on, otherwise INT_MIN.
Input 0 to 1 (input0ToInput1Position0)¶
-
name:
input0ToInput1Position0
, type:
Vector3
, persistent:
no
¶ The position of the (or a) farest point in
inputPCLObject0
to the (or a) nearest one ininputPCLObject1
(corresponding toInput 0 to 1
), valid only ifResults Valid
is on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input0To Input1Position1¶
-
name:
input0ToInput1Position1
, type:
Vector3
, persistent:
no
¶ The position of the (or a) nearest point in
inputPCLObject1
to the (or a) farest one ininputPCLObject0
(corresponding toInput 0 to 1
), valid only ifResults Valid
is on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input 1 To 0¶
-
name:
input1ToInput0Distance
, type:
Float
, persistent:
no
¶ The maximum possible distance of any point of
inputPCLObject1
to the (or a) nearest point ofinputPCLObject0
, valid only ifResults Valid
is on, otherwise -FLT_MAX.
Input 1 to 0 (input1ToInput0Index0)¶
-
name:
input1ToInput0Index0
, type:
Integer
, persistent:
no
¶ The index of the (or a) farest point in
inputPCLObject1
to the (or a) nearest one ininputPCLObject0
(corresponding toInput 1 To 0
), or INT_32_MIN ifResults Valid
is off.
Input1To Input0Index1¶
-
name:
input1ToInput0Index1
, type:
Integer
, persistent:
no
¶ The index of the (or a) nearest point in
inputPCLObject1
to the (or a) farest one ininputPCLObject0
(corresponding toInput 1 To 0
), or INT_32_MIN ifResults Valid
is off.
Input 1 to 0 (input1ToInput0Position0)¶
-
name:
input1ToInput0Position0
, type:
Vector3
, persistent:
no
¶ The position of the (or a) farest point in
inputPCLObject1
to the (or a) nearest one ininputPCLObject0
(corresponding toInput 1 To 0
), valid only ifResults Valid
is on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input1To Input0Position1¶
-
name:
input1ToInput0Position1
, type:
Vector3
, persistent:
no
¶ The position of the (or a) nearest point in
inputPCLObject0
to the (or a) farest one ininputPCLObject1
(corresponding toInput 1 To 0
), valid only ifResults Valid
is on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Hausdorff¶
-
name:
hausdorffDistance
, type:
Float
, persistent:
no
¶ The Hausdorff distance of
inputPCLObject0
andinputPCLObject0
point clouds (which is the minimum ofInput 0 to 1
andInput 0 to 1
), see https://en.wikipedia.org/wiki/Hausdorff_distance , valid only ifResults Valid
is on, otherwise -FLT_MAX.
Input 01 Min (input01MinDistanceIndex0)¶
-
name:
input01MinDistanceIndex0
, type:
Integer
, persistent:
no
¶ Index of a point of
inputPCLObject0
representing one point from a pair with minimum possible distance betweeninputPCLObject0
andinputPCLObject1
; valid only ifResults Valid
is on, otherwise INT_32_MIN.
Input01Min Distance Index1¶
-
name:
input01MinDistanceIndex1
, type:
Integer
, persistent:
no
¶ Index of a point of
inputPCLObject1
representing one point from a pair with minimum possible distance betweeninputPCLObject0
andinputPCLObject1
; valid only ifResults Valid
is on, otherwise INT_32_MIN.
Input 01 Min (input01MinDistancePosition0)¶
-
name:
input01MinDistancePosition0
, type:
Vector3
, persistent:
no
¶ Coordinates of the point with index
Input 01 Min
, valid only ifResults Valid
is on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Input01Min Distance Position1¶
-
name:
input01MinDistancePosition1
, type:
Vector3
, persistent:
no
¶ Coordinates of the point with index
Input01Min Distance Index1
, valid only ifResults Valid
is on, otherwise (-FLT_MAX, -FLT_MAX, -FLT_MAX).
Minimum¶
-
name:
minDistance
, type:
Float
, persistent:
no
¶ The minimum possible distance between any point in
inputPCLObject0
and any point ininputPCLObject1
, valid only ifResults Valid
is on, otherwise -FLT_MAX.