| Customize Help
| Save Settings

M3dmetStat



Function Map
Synopsis
Compute a variety of statistics on the distances between a point cloud or depth map, and a point cloud, depth map, or 3D geometry.
Syntax
void M3dmetStat(
MIL_ID StatContext3dmetId, //in
MIL_ID SrcContainerOrImageBufId, //in
MIL_ID RefMilObjectId, //in
MIL_ID StatResult3dmetId, //in
MIL_INT64 DistanceType, //in
MIL_INT64 Condition, //in
MIL_DOUBLE CondLow, //in
MIL_DOUBLE CondHigh, //in
MIL_INT64 ControlFlag //in
)
Description

This function calculates a variety of statistics on the distance measurements collected between a source and reference MIL object.

The specified statistics 3D metrology context establishes which statistics to compute, and the DistanceType and Condition parameters establish the type of distance measurements to use in computing the statistics. Note that you can use a predefined context to calculate a single statistic. In this case, the statistic is calculated using its default settings.

You can use this function to, for example, calculate the mean distance between all points in a point cloud and the center of a 3D sphere geometry object.

Note that this function reference has not been updated for a MIL system added during a MIL update. Refer to the MIL system's release note to see which MIL system’s documentation you should use in its place and any possible differences.
Parameters
This function is not supported on the selected boards.
This function reference has not been updated for the selected MIL system. To show the content of this page, choose a second MIL system; refer to the MIL system's release note to see which MIL system’s documentation to choose and any possible differences.
Parameters
StatContext3dmetId

Specifies a previously allocated statistics 3D metrology context (used to evaluate multiple statistical calculations), or a predefined statistics 3D metrology context (used to evaluate a single statistical calculation).

function map For specifying the statistics 3D metrology context, or specific statistic to calculate
Click to summarizeValue Description
Click to summarize M_STAT_CONTEXT_MAX

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_MAX which is set to M_ENABLE.

Use this predefined context to calculate the maximum distance between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_MAX_ABS

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_MAX_ABS which is set to M_ENABLE.

Use this predefined context to calculate the maximum absolute distance between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_MEAN

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_MEAN which is set to M_ENABLE.

Use this predefined context to calculate the average distance between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_MIN

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_MIN which is set to M_ENABLE.

Use this predefined context to calculate the minimum distance between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_MIN_ABS

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_MIN_ABS which is set to M_ENABLE.

Use this predefined context to calculate the minimum absolute distance between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_NUMBER

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_NUMBER which is set to M_ENABLE.

Use this predefined context to calculate the number of points that meet the condition specified using the Condition, CondLow and CondHigh parameters.

(summarize)
Click to summarize M_STAT_CONTEXT_RMS

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_RMS which is set to M_ENABLE.

Use this predefined context to calculate the root-mean-square (RMS) error of the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_STANDARD_DEVIATION

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_STANDARD_DEVIATION which is set to M_ENABLE.

Use this predefined context to calculate the standard deviation of all the distances calculated between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_SUM

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_SUM which is set to M_ENABLE.

Use this predefined context to calculate the sum of all the distances calculated between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_SUM_ABS

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_SUM_ABS which is set to M_ENABLE.

Use this predefined context to calculate the sum of all the absolute distances calculated between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize M_STAT_CONTEXT_SUM_OF_SQUARES

Specifies a predefined statistics 3D metrology context with all the control types (M3dmetControl()) in the context set to their default, except for M_STAT_SUM_OF_SQUARES which is set to M_ENABLE.

Use this predefined context to calculate the sum of squared distances between the point cloud or depth map, and the specified reference object.

(summarize)
Click to summarize MIL statistics 3D metrology context
identifier

Specifies a statistics 3D metrology context identifier, previously allocated using M3dmetAlloc() with M_STATISTICS_CONTEXT.

You can specify which statistics calculations are evaluated using M3dmetControl().

(summarize)
SrcContainerOrImageBufId

Specifies the source point cloud container or depth map image buffer.

function map For specifying the point cloud container or depth map image buffer
Click to summarizeValue Description
Click to summarize Depth map imague buffer identifier

Specifies the identifier of a depth map image buffer.

The image buffer must be a 1-band, 8-bit, 16-bit, or 32-bit unsigned buffer. It must contain a fully corrected depth map (that is, if you call McalInquire() with M_DEPTH_MAP, the function returns M_TRUE).

The image buffer can have region of interest (ROI) in raster format; only the values inside the ROI will be used in the statistics calculations.

(summarize)
Click to summarize Point cloud container identifier

Specifies the identifier of a point cloud container. The container must be 3D-processable. You can use MbufInquireContainer() with M_3D_PROCESSABLE to ensure that the container contains a 3D-processable point cloud.

(summarize)
RefMilObjectId

Specifies the identifier of the reference MIL object, with respect to which distances will be measured.

You can set the RefMilObjectId parameter to one of the following values:

function map For specifying the container, depth map or 3D geometry object
Click to summarizeValue Description
Click to summarize M_XY_PLANE

Specifies the XY (Z=0) plane.

This is equivalent to passing a 3D plane geometry object, and can therefore be used with the same DistanceType parameter settings.

(summarize)
Click to summarize 3D geometry object identifier

Specifies the identifier of a 3D geometry object to use as the reference MIL object. The geometry object must have been previously allocated on the required system using M3dgeoAlloc() and must have been successfully defined. Supported 3D geometries include box, cylinder, line, plane, and sphere.

(summarize)
Click to summarize Depth map image buffer identifier

Specifies the identifier of a depth map image buffer.

The image buffer must be a 1-band, 8-bit, 16-bit, or 32-bit unsigned buffer. It must contain a fully corrected depth map (that is, if you call McalInquire() with M_DEPTH_MAP, the function returns M_TRUE).

The image buffer is allocated using MbufAlloc2d(), and must not have a region of interest (ROI) associated with it.

(summarize)
Click to summarize Point cloud container identifier

Specifies the identifier of a point cloud container.

The container must be 3D-processable. You can use MbufInquireContainer() with M_3D_PROCESSABLE to ensure that the container contains a 3D-processable point cloud.

(summarize)

See the Parameter associations section for possible values that can be specified.

StatResult3dmetId

Specifies the identifier of the statistics 3D metrology result buffer in which to store the results. The result buffer must have been allocated using M3dmetAllocResult() with M_STATISTICS_RESULT.

DistanceType

Specifies the type of distance to calculate.

See the Parameter associations section for possible values that can be specified.

Condition

Specifies the condition for which distance measurements will be used in statistics calculations.

function map For specifying the condition
Click to summarizeValue Description
Click to summarize M_ALL

Specifies to use all distance measurements.

Click to summarize M_GREATER

Specifies to use all distance measurements greater than CondLow.

Click to summarize M_GREATER_OR_EQUAL

Specifies to use all distance measurements greater than or equal to CondLow.

Click to summarize M_IN_RANGE

Specifies to use all distance measurements between CondLow and CondHigh (inclusive).

Click to summarize M_LESS

Specifies to use all distance measurements less than CondLow.

Click to summarize M_LESS_OR_EQUAL

Specifies to use all distance measurements less than or equal to CondLow.

CondLow

Specifies the lower limit of the selected condition.

function map For the lower limit of the selected condition
Click to summarizeValue Description
Click to summarize M_NULL

Specifies that this parameter is not applicable.

Click to summarize Value

Specifies the lower limit of the condition.

CondHigh

Specifies the upper limit of the selected condition.

function map For the upper limit of the selected condition
Click to summarizeValue Description
Click to summarize M_NULL

Specifies that this parameter is not applicable.

Click to summarize Value

Specifies the upper limit of the condition.

ControlFlag

Reserved for future expansion and must be set to M_DEFAULT.

The table below lists possible values for the RefMilObjectId and DistanceType parameters.

To specify the type of distance measurement, the DistanceType parameter can be set to one of the following values, depending on the type of reference object (RefMilObjectId) being measured against.

function map For specifying the type of distance calculation for the specified reference object
Click to summarizeRefMilObjectId Description
DistanceType
Click to summarize 3D box geometry object identfier

Specifies a 3D box geometry object, allocated using M3dgeoAlloc() and defined using M3dgeoBox().

(summarize)
Click to summarize M_ABSOLUTE_DISTANCE_TO_SURFACE

Specifies to calculate the absolute distance to the surface of the box.

The returned value is always positive.

(summarize)
Click to summarize M_MANHATTAN_DISTANCE_TO_SURFACE

Specifies to calculate the Manhattan distance to the surface of the box.

Distance measurements are positive for points outside the box, and negative for points inside the box.

(summarize)
Click to summarize M_SIGNED_DISTANCE_TO_SURFACE

Specifies to calculate the signed distance to the surface of the box.

Distance measurements are positive for points outside the box, and negative for points inside the box.

(summarize)
Click to summarize 3D cylinder geometry object identifier

Specifies a 3D cylinder geometry object, allocated using M3dgeoAlloc() and defined using M3dgeoCylinder().

(summarize)
Click to summarize M_ABSOLUTE_DISTANCE_TO_SURFACE

Specifies to calculate the absolute distance to the surface of the cylinder.

The returned value is always positive.

(summarize)
Click to summarize M_DISTANCE_TO_CENTER_AXIS

Specifies to calculate the distance to the cylinder's central axis.

The axis extends infinitely in both directions, even if the cylinder has a finite size.

(summarize)
Click to summarize M_DISTANCE_TO_CENTER_AXIS_SQUARED

Specifies to calculate the square of the distance to the cylinder's central axis.

The axis extends infinitely in both directions, even if the cylinder has a finite size.

(summarize)
Click to summarize M_SIGNED_DISTANCE_TO_SURFACE

Specifies to calculate the signed distance to the surface of the cylinder.

Distance measurements are positive for points outside the cylinder, and negative for points inside the cylinder.

(summarize)
Click to summarize 3D line geometry object identifier

Specifies a 3D line geometry object, allocated using M3dgeoAlloc() and defined using M3dgeoLine().

(summarize)
Click to summarize M_DISTANCE_TO_LINE

Specifies to calculate the distance to the line.

The length of the line is respected; if the line is finite, it is not extended infinitely when calculating distances.

(summarize)
Click to summarize M_DISTANCE_TO_LINE_SQUARED

Specifies to calculate the square of the distance to the line.

The length of the line is respected; if the line is finite, it is not extended infinitely when calculating distances.

(summarize)
Click to summarize 3D plane geometry object identifier

Specifies a 3D plane geometry object, allocated using M3dgeoAlloc() and defined using M3dgeoPlane().

When the reference object is a 3D plane geometry object, calculations are quicker if the source object is a depth map rather than a point cloud.

(summarize)
Click to summarize M_ABSOLUTE_DISTANCE_TO_SURFACE

Specifies to calculate the absolute distance, perpendicular to the plane.

The returned value is always positive.

(summarize)
Click to summarize M_ABSOLUTE_DISTANCE_Z_TO_SURFACE

Specifies to calculate the absolute distance along the Z-axis to the plane.

The returned value is always positive.

(summarize)
Click to summarize M_SIGNED_DISTANCE_TO_SURFACE

Specifies to calculate the signed distance, perpendicular to the plane.

Distance measurements are positive for points on the same side as the plane's normal, and negative on the other side.

(summarize)
Click to summarize M_SIGNED_DISTANCE_Z_TO_SURFACE

Specifies to calculate the signed distance along the Z-axis to the plane.

Distance measurements are positive if the point is above the plane and negative below.

(summarize)
Click to summarize 3D sphere geometry object identifier

Specifies a 3D sphere geometry object, allocated using M3dgeoAlloc() and defined using M3dgeoSphere().

(summarize)
Click to summarize M_ABSOLUTE_DISTANCE_TO_SURFACE

Specifies to calculate the absolute distance to the surface of the sphere.

The returned value is always positive.

(summarize)
Click to summarize M_DISTANCE_TO_CENTER

Specifies to calculate the signed distance to the center of the sphere.

Click to summarize M_DISTANCE_TO_CENTER_SQUARED

Specifies to calculate the square of the distance to the center of the sphere.

Click to summarize M_SIGNED_DISTANCE_TO_SURFACE

Specifies to calculate the signed distance to the surface of the sphere.

Distance measurements are positive for points outside the sphere, and negative for points inside the sphere.

(summarize)
Click to summarize Depth map image buffer identifier

Specifies the identifier of a depth map image buffer.

The image buffer must be a 1-band, 8-bit, 16-bit, or 32-bit unsigned buffer. It must contain a fully corrected depth map (that is, if you call McalInquire() with M_DEPTH_MAP, the function returns M_TRUE).

The image buffer must not have a region of interest (ROI) associated with it.

When the source and reference MIL objects are depth maps, calculations are completed more quickly. The speed is further increased if both depth maps use the same calibration context.

(summarize)
Click to summarize M_ABSOLUTE_DISTANCE_Z_TO_SURFACE

Specifies to calculate the absolute distance to the position in the depth map that is directly above or below the source along the Z-axis.

The returned value is always positive.

If a point would be projected outside of the depth map, the point is not used in statistics calculations.

(summarize)
Click to summarize M_SIGNED_DISTANCE_Z_TO_SURFACE

Specifies to calculate the signed distance using the Z-coordinate of the corresponding pixel of the reference depth map. That is, the distance is calculated along the Z-axis.

Distance measurements are positive for points above the depth map, and negative for points below the depth map.

If a point would be projected outside of the depth map, the point is not used in statistics calculations.

(summarize)
Click to summarize Point cloud container identifier

Specifies a point cloud container, allocated with MbufAllocContainer() with M_PROC.

The function runs much slower when the reference MIL object is a point cloud container. If speed is an issue, you can specify a range for calculating distance measurements using the Condition, CondHigh and CondLow parameters. Any distance measurements outside the specified range are not used in statistics calculations.

You can also project the reference point cloud into a fully corrected depth map first (using M3dimProject()), at the cost of precision.

(summarize)
Click to summarize M_DISTANCE_TO_MESH

Specifies to calculate the shortest distance to the reference object's mesh.

This calculation requires that the reference object have a mesh component.

(summarize)
Click to summarize M_DISTANCE_TO_NEAREST_NEIGHBOR

Specifies to calculate the distance to the nearest point in the reference point cloud.

Compilation information
Header Include mil.h.
Library Use mil.lib; mil3dmet.lib.
DLL Requires mil.dll; mil3dmet.dll.
STAT CONTEXT MAX STAT CONTEXT MAX ABS STAT CONTEXT MEAN STAT CONTEXT MIN STAT CONTEXT MIN ABS STAT CONTEXT NUMBER STAT CONTEXT RMS STAT CONTEXT STANDARD DEVIATION STAT CONTEXT SUM STAT CONTEXT SUM ABS STAT CONTEXT SUM OF SQUARES UNSIGNED RASTER VECTOR AND RASTER PROC NOT PROCESSABLE XY PLANE BOX CYLINDER LINE PLANE SPHERE UNSIGNED NONE PROC NOT PROCESSABLE ALL GREATER GREATER OR EQUAL IN RANGE LESS LESS OR EQUAL NULL NULL BOX ABSOLUTE DISTANCE TO SURFACE MANHATTAN DISTANCE TO SURFACE SIGNED DISTANCE TO SURFACE CYLINDER ABSOLUTE DISTANCE TO SURFACE DISTANCE TO CENTER AXIS DISTANCE TO CENTER AXIS SQUARED SIGNED DISTANCE TO SURFACE LINE DISTANCE TO LINE DISTANCE TO LINE SQUARED PLANE ABSOLUTE DISTANCE TO SURFACE ABSOLUTE DISTANCE Z TO SURFACE SIGNED DISTANCE TO SURFACE SIGNED DISTANCE Z TO SURFACE SPHERE ABSOLUTE DISTANCE TO SURFACE DISTANCE TO CENTER DISTANCE TO CENTER SQUARED SIGNED DISTANCE TO SURFACE UNSIGNED NONE ABSOLUTE DISTANCE Z TO SURFACE SIGNED DISTANCE Z TO SURFACE DISTANCE TO MESH DISTANCE TO NEAREST NEIGHBOR