Skip to main content

M3dblobGetResult

BoardSupported
Host SystemYes
V4L2Yes
Clarity UHDYes
Concord PoENo
GenTLYes
GevIQYes
GigE VisionYes
IndioNo
Iris GTXYes
Radient eV-CLYes
Rapixo CLYes
Rapixo CoFYes
Rapixo CXPYes
USB3 VisionYes

Get calculated feature results for the specified blobs, from a 3D blob analysis result buffer.

Syntax

AIL_DOUBLE M3dblobGetResult(
AIL_ID Result3dblobId, //in
AIL_INT64 LabelOrIndex, //in
AIL_INT64 ResultType, //in
void * ResultArrayPtr //out
)

Description

This function retrieves the results for a specified feature of one or all blobs, from the specified 3D blob analysis result buffer.

The specified feature(s) must have already been calculated using M3dblobCalculate. Note that M3dblobGetResult generates an error if you try to retrieve a result whose corresponding feature was not calculated. You can add the M_AVAILABLE combination constant to a feature to determine if the result is available for retrieval.

Parameters

Result3dblobId (in, AIL_ID)

Specifies the identifier of the 3D blob analysis result buffer from which to get results.

LabelOrIndex (in, AIL_INT64)

Specifies the label or index of the blob for which to get results, or specifies that you are getting general results related to all blobs. This parameter must be set to one of the following values:

For specifying the blob label or index

ValueDescription
M_DEFAULT
M_BLOB_INDEXSpecifies the index of the blob listed in the specified result buffer.
M_BLOB_LABELSpecifies the label of the blob listed in the specified result buffer.

Note that blob labels are not consecutive; use M_INDEX_VALUE to establish if a blob with a given label exists. With the exception of M_INDEX_VALUE, if you specify a blob label that does not exist, Aurora Imaging Library returns an error. | | M_ALL_BLOBS | Specifies to retrieve results from all blobs listed in the specified result buffer. | | M_GENERAL (default) | Specifies to retrieve general results from the 3D blob analysis result buffer. |

ResultType (in, AIL_INT64)

Specifies the type of result to retrieve.

ResultArrayPtr *(out, void)

Specifies the address in which to write the results. Since the M3dblobGetResult function also returns the results, you can set this parameter to M_NULL.

Parameter Associations

For retrieving general results from the 3D blob analysis result buffer

To retrieve a general result, the ResultType parameter should be set to one of the following values. In this case, you must set LabelOrIndex to M_GENERAL or M_DEFAULT.


M_CONTAINER_ID

Retrieves the identifier of the container that was used for the segmentation. If M3dblobSegment has not been called yet or if it was called with a label image instead of a container, M_NULL is returned. If this result is not null, post-segmentation functions that take a container (such as M3dblobCalculate and M3dblobExtract) expect this container as input.

ValueDescription
M_NULLSpecifies that M3dblobSegment has not been called or that it was called with a label image instead of a container.
Container identifierSpecifies the Aurora Imaging Library identifier of the container that was used for the segmentation.

M_INDEX_IMAGE_SIZE_BIT

Retrieves the minimum bit size required for the index image, assuming an unsigned buffer. Note that you can use this value to allocate an image buffer of an appropriate size for M3dblobCopyResult to create an index image.


M_LABEL_IMAGE_SIZE_BIT

Retrieves the minimum bit size required for the label image, assuming an unsigned buffer. Note that you can use this value to allocate an image buffer of an appropriate size for M3dblobCopyResult to create a label image.


M_MAX_DISTANCE

Retrieves the maximum distance within which two points are considered neighbors, depending on the maximum distance mode. If M_MAX_DISTANCE_MODE was not set to M_USER_DEFINED, this is the value that was computed during segmentation.

ValueDescription
M_INFINITESpecifies no maximum distance.
Value >= 0Specifies the maximum distance value.

M_MAX_LABEL_VALUE

Retrieves the maximum label value of all blobs in the result buffer. Label values for blobs are generated when a call to M3dblobCalculate is made. The maximum label value is not necessarily the same as the total number of blobs (M_NUMBER) because some label values might not be used. You can call M3dblobGetResult with M_LABEL_IMAGE_SIZE_BIT to determine the bit depth required when creating a label image using M3dblobCopyResult. Note that if zero is returned, no blobs were found.


M_NORMAL_DISTANCE_MAX

Retrieves the maximum angle between normal vectors within which two points are considered neighbors. If M_NORMAL_DISTANCE_MAX_MODE was not set to M_USER_DEFINED, this is the value that was computed during segmentation.

ValueDescription
M_INFINITESpecifies no maximum angle.
Value >= 0Specifies the maximum angle value.

M_NUMBER

Retrieves the number of blobs that are listed in the result buffer.


M_RESULT_IMAGE_SIZE_X

Retrieves the size in X of the container or image used for the blob segmentation. Note that you can use this value to allocate an image buffer of an appropriate size for M3dblobCopyResult to create an index image, label image, or mask image.

ValueDescription
Value >= 0Specifies the size in X, in pixels.

M_RESULT_IMAGE_SIZE_Y

Retrieves the size in Y of the container or image used for the blob segmentation. Note that you can use this value to allocate an image buffer of an appropriate size for M3dblobCopyResult to create an index image, label image, or mask image.

ValueDescription
Value >= 0Specifies the size in Y, in pixels.

M_STATUS

Retrieves the status of the segmentation operation, or why the segmentation failed.

ValueDescription
M_CONTAINER_NOT_ORGANIZEDSpecifies that the segmentation failed because the source point cloud container was unorganized.
M_MISSING_COMPONENT_MESH_AILSpecifies that the segmentation failed because the source point cloud container did not have an M_COMPONENT_MESH_AIL component.
M_MISSING_COMPONENT_NORMALS_AILSpecifies that the segmentation failed because the source point cloud container did not have an M_COMPONENT_NORMALS_AIL component.
M_NOT_INITIALIZEDSpecifies that the 3D blob analysis result buffer was not used in a call to M3dblobSegment, and contains no results.
M_STOPPED_BY_REQUESTSpecifies that the blob segmentation operation was stopped from another thread using M3dblobControl with M_STOP_SEGMENT.
M_SUCCESSSpecifies that the blob segmentation operation completed successfully.
M_TIMEOUT_REACHEDSpecifies that the blob segmentation operation took longer than the allowed value, specified using M3dblobControl with M_TIMEOUT, and has stopped before completion.

M_TOTAL_NUMBER_OF_POINTS

Retrieves the total number of points across all blobs.

For retrieving results that are always available from a single blob or all blobs

To retrieve an always-available result of an M3dblobSegment operation, the ResultType parameter should be set to one of the following values. In this case, you must set LabelOrIndex to M_BLOB_INDEX(), M_BLOB_LABEL(), or M_ALL_BLOBS. If LabelOrIndex is M_ALL_BLOBS, the results are returned in an array instead of a single value. > Note: These results are available after an M3dblobSegment operation, and remain available after an M3dblobCalculate operation that uses the results of the blob segmentation. If M3dblobSegment has not yet been called on this result, you will receive an error.


M_BLOB_TOUCHING_IMAGE_BORDERS

Retrieves information about which side(s) of the container or label image that the blob touches. This is either the side(s) of an organized point cloud container's range component or a 2D label image. Note that M_BLOB_TOUCHING_IMAGE_BORDERS is available only when the object used for segmentation (M3dblobSegment with ContainerOrLabelImageBufId) is an organized point cloud or 2D label image. Note that a combination of the values below can be returned. For example, if the blob touches the bottom-left, the function returns M_BOTTOM + M_LEFT. Bitwise operators must be used to verify the borders that the blob touches.

ValueDescription
M_NULLSpecifies that no blob touches a side.
M_BOTTOMSpecifies that the blob touches the bottom of the container or label image.
M_LEFTSpecifies that the blob touches the left of the container or label image.
M_RIGHTSpecifies that the blob touches the right of the container or label image.
M_TOPSpecifies that the blob touches the top of the container or label image.

M_FIRST_PIXEL_X

Retrieves the X-coordinate of the first pixel in the blob. This is the left-most pixel on the top-most line of the blob's stored location in the container's 2D grid organization, or it is the equivalent pixel in the label image. The value returned is the same as the first X-coordinate returned with M_PIXEL_X or M_PIXEL_PACKED.


M_FIRST_PIXEL_Y

Retrieves the Y-coordinate of the first pixel in the blob. This is the left-most pixel on the top-most line of the blob's stored location in the container's 2D grid organization, or it is the equivalent pixel in the label image. The value returned is the same as the first Y-coordinate returned with M_PIXEL_Y or M_PIXEL_PACKED.


M_INDEX_VALUE

Retrieves the index of the blob. You can use this result type to establish if a blob with a given label exists. If the label is valid, M_INDEX_VALUE returns the corresponding index; if the label is not valid, M_INVALID is returned instead of an Aurora Imaging Library error.

ValueDescription
M_INVALIDSpecifies an invalid index.
0 <= Value < M_NUMBERSpecifies the index of the blob.

M_LABEL_VALUE

Retrieves the label of the blob.

ValueDescription
0 < Value <= M_MAX_LABEL_VALUESpecifies the label of the blob.

M_NUMBER_OF_POINTS

Retrieves the number of points in the blob.


M_PIXEL_MAX_X

Retrieves the maximum X-coordinate of the blob's stored location in the container's 2D grid organization (or the equivalent coordinate in the label image), expressed in pixel units.


M_PIXEL_MAX_Y

Retrieves the maximum Y-coordinate of the blob's stored location in the container's 2D grid organization (or the equivalent coordinate in the label image), expressed in pixel units.


M_PIXEL_MIN_X

Retrieves the minimum X-coordinate of the blob's stored location in the container's 2D grid organization (or the equivalent coordinate in the label image), expressed in pixel units.


M_PIXEL_MIN_Y

Retrieves the minimum Y-coordinate of the blob's stored location in the container's 2D grid organization (or the equivalent coordinate in the label image), expressed in pixel units.


M_PIXEL_PACKED

Retrieves the packed X- and Y-coordinates of the blob's stored location in the container's 2D grid organization (or the equivalent coordinates in the label image). The coordinates are returned in an interleaved manner: [X<sub>0</sub>, Y<sub>0</sub>, X<sub>1</sub>, Y<sub>1</sub>, ...]. Note that the order is from left to right, top to bottom, starting with the blob's top-left stored location in the container (or equivalent location in the label image).


M_PIXEL_X

Retrieves the X-coordinates of the blob's stored location in the container's 2D grid organization (or the equivalent coordinates in the label image).


M_PIXEL_Y

Retrieves the Y-coordinates of the blob's stored location in the container's 2D grid organization (or the equivalent coordinates in the label image).

For retrieving results that are sometimes available from a single blob or all blobs

To retrieve a sometimes-available result of an M3dblobSegment or M3dblobCalculate operation, the ResultType parameter should be set to one of the following values. In this case, you must set LabelOrIndex to M_BLOB_INDEX(), M_BLOB_LABEL(), or M_ALL_BLOBS. If LabelOrIndex is M_ALL_BLOBS, the results are returned in an array instead of a single value. > Note: If M3dblobSegment has not yet been called on this result, an error is thrown.


?


?


?


M_AVERAGE_NORMAL_X

Retrieves the X-component of the blob's average normal vector.


M_AVERAGE_NORMAL_Y

Retrieves the Y-component of the blob's average normal vector.


M_AVERAGE_NORMAL_Z

Retrieves the Z-component of the blob's average normal vector.


M_BOX_CENTER_X

Retrieves the X-coordinate of the center of the blob's bounding box. The default bounding box is axis-aligned. To specify the PCA or semi-oriented box, use the respective combination value M_PCA_BOX or M_SEMI_ORIENTED_BOX.


M_BOX_CENTER_Y

Retrieves the Y-coordinate of the center of the blob's bounding box. The default bounding box is axis-aligned. To specify the PCA or semi-oriented box, use the respective combination value M_PCA_BOX or M_SEMI_ORIENTED_BOX.


M_BOX_CENTER_Z

Retrieves the Z-coordinate of the center of the blob's bounding box. The default bounding box is axis-aligned. To specify the PCA or semi-oriented box, use the respective combination value M_PCA_BOX or M_SEMI_ORIENTED_BOX.


M_CENTROID_X

Retrieves the X-coordinate of the centroid of the blob.


M_CENTROID_Y

Retrieves the Y-coordinate of the centroid of the blob.


M_CENTROID_Z

Retrieves the Z-coordinate of the centroid of the blob.


M_COVARIANCE_MATRIX

Retrieves the 9 entries that make up the covariance matrix, in row-major order. The covariance matrix is defined as a 3x3 matrix of second order central moments: | | | | | --- | --- | --- | | xx | xy | xz | | xy | yy | yz | | xz | yz | zz |


M_EIGENVALUE_1

Retrieves the eigenvalue corresponding to the first principal axis. The first principal axis is the direction along which there is the most variance.


M_EIGENVALUE_2

Retrieves the eigenvalue corresponding to the second principal axis. The second principal axis is the direction along which there is the second most variance, perpendicular to the first principal axis.


M_EIGENVALUE_3

Retrieves the eigenvalue corresponding to the third principal axis. The third principal axis is perpendicular to the first and second principal axes.


M_FERET_AT_PRINCIPAL_AXIS_1

Retrieves the length of the Feret along the first principal axis. This result is the same as M_SIZE_X + M_PCA_BOX. To retrieve this result, you must have enabled M_PCA_BOX (using M3dblobControl).


M_FERET_AT_PRINCIPAL_AXIS_2

Retrieves the length of the Feret along the second principal axis. This result is the same as M_SIZE_Y + M_PCA_BOX. To retrieve this result, you must have enabled M_PCA_BOX (using M3dblobControl).


M_FERET_AT_PRINCIPAL_AXIS_3

Retrieves the length of the Feret along the third principal axis. This result is the same as M_SIZE_Z + M_PCA_BOX. To retrieve this result, you must have enabled M_PCA_BOX (using M3dblobControl).


M_FERET_GENERAL

Retrieves the length of the Feret in the direction specified with M_FERET_GENERAL + M_FERET_DIRECTION_.... To retrieve this result, you must have enabled M_FERET_GENERAL (using M3dblobControl).


M_FERET_MAX_DIAMETER

Retrieves the length of the longest Feret in the blob. > Note: Note that, when you combine this result type with an M_FERET_DIRECTION_... combination value, the direction is accurate up to the angle specified with M_FERET_PRECISION (using M3dblobControl). To retrieve this result, you must have enabled M_FERET_MAX_DIAMETER (using M3dblobControl).


M_FERET_MIN_DIAMETER

Retrieves the length of the shortest Feret in the blob. > Note: Note that, when you combine this result type with an M_FERET_DIRECTION_... combination value, the direction is accurate up the angle specified with M_FERET_PRECISION (using M3dblobControl). To retrieve this result, you must have enabled M_FERET_MIN_DIAMETER (using M3dblobControl).


M_FERET_SEMI_ORIENTED_HEIGHT

Retrieves the height (smallest XY side) of the semi-oriented box. This result is the same as M_SIZE_Y + M_SEMI_ORIENTED_BOX.


M_FERET_SEMI_ORIENTED_WIDTH

Retrieves the width (longest XY side) of the semi-oriented box. This result is the same as M_SIZE_X + M_SEMI_ORIENTED_BOX.


M_FERET_X

Retrieves the length of the X-aligned Feret (same as M_SIZE_X). To retrieve this result, you must have enabled M_BOUNDING_BOX (using M3dblobControl).


M_FERET_Y

Retrieves the length of the Y-aligned Feret (same as M_SIZE_Y). To retrieve this result, you must have enabled M_BOUNDING_BOX (using M3dblobControl).


M_FERET_Z

Retrieves the length of the Z-aligned Feret (same as M_SIZE_Z). To retrieve this result, you must have enabled M_BOUNDING_BOX or M_SEMI_ORIENTED_BOX (using M3dblobControl).


M_LINEARITY

Retrieves the degree to which the specified blob is linear, where 1.0 is a perfect line and 0.0 is a perfect sphere. This is equal to the following equation: 1 - sqrt([M_EIGENVALUE_2](../../Reference/3dblob/M3dblobGetResult.md)/[M_EIGENVALUE_1](../../Reference/3dblob/M3dblobGetResult.md)). To retrieve this result, you must have enabled M_LINEARITY (using M3dblobControl). Otherwise, you must have enabled M_MOMENTS and set M_MOMENT_ORDER to an order of at least 2.

ValueDescription
0.0 <= Value <= 1.0Specifies the degree to which the blob is linear.

M_MAX_X

Retrieves the X-coordinate of the maximum corner of the blob's axis-aligned bounding box.


M_MAX_Y

Retrieves the Y-coordinate of the maximum corner of the blob's axis-aligned bounding box.


M_MAX_Z

Retrieves the Z-coordinate of the maximum corner of the blob's axis-aligned or semi-oriented bounding box. To retrieve this result, you must have enabled M_BOUNDING_BOX or M_SEMI_ORIENTED_BOX (using M3dblobControl).


M_MIN_X

Retrieves the X-coordinate of the minimum corner of the blob's axis-aligned bounding box.


M_MIN_Y

Retrieves the Y-coordinate of the minimum corner of the blob's axis-aligned bounding box.


M_MIN_Z

Retrieves the Z-coordinate of the minimum corner of the blob's axis-aligned or semi-oriented bounding box. To retrieve this result, you must have enabled M_BOUNDING_BOX or M_SEMI_ORIENTED_BOX (using M3dblobControl).


M_NEAREST_BLOB

Retrieves the label of the nearest blob. If there are no other blobs, or if the nearest blob is further than M_NEAREST_BLOB + M_MAX_DISTANCE, the label is 0 and no other nearest blob results are available. To retrieve this result, you must have enabled M_NEAREST_BLOB (using M3dblobControl).


M_NEAREST_BLOB_DISTANCE

Retrieves the minimum distance to the nearest blob. To retrieve this result, you must have enabled M_NEAREST_BLOB (using M3dblobControl) and there must be at least one blob within the specified maximum distance (that is, M3dblobGetResult with M_NEAREST_BLOB must not return 0).


M_PLANARITY

Retrieves the degree to which the specified blob is planar, where 1.0 is a perfect plane and 0.0 is a perfect sphere. This is equal to the following equation: 1 - sqrt([M_EIGENVALUE_3](../../Reference/3dblob/M3dblobGetResult.md)/ [M_EIGENVALUE_2](../../Reference/3dblob/M3dblobGetResult.md)). To retrieve this result, you must have enabled M_PLANARITY (using M3dblobControl). Otherwise, you must have enabled M_MOMENTS and set M_MOMENT_ORDER to an order of at least 2.

ValueDescription
0.0 <= Value <= 1.0Specifies the degree to which the blob is planar.

M_PRINCIPAL_AXIS_1_X

Retrieves the X-component of the normalized vector along the first principal axis, which is the axis with the largest eigenvalue.


M_PRINCIPAL_AXIS_1_Y

Retrieves the Y-component of the normalized vector along the first principal axis, which is the axis with the largest eigenvalue.


M_PRINCIPAL_AXIS_1_Z

Retrieves the Z-component of the normalized vector along the first principal axis, which is the axis with the largest eigenvalue.


M_PRINCIPAL_AXIS_2_X

Retrieves the X-component of the normalized vector along the second principal axis, which is the axis with the second largest eigenvalue.


M_PRINCIPAL_AXIS_2_Y

Retrieves the Y-component of the normalized vector along the second principal axis, which is the axis with the second largest eigenvalue.


M_PRINCIPAL_AXIS_2_Z

Retrieves the Z-component of the normalized vector along the second principal axis, which is the axis with the second largest eigenvalue.


M_PRINCIPAL_AXIS_3_X

Retrieves the X-component of the normalized vector along the third principal axis, which is the axis perpendicular to the first and second principal axes.


M_PRINCIPAL_AXIS_3_Y

Retrieves the Y-component of the normalized vector along the third principal axis, which is the axis perpendicular to the first and second principal axes.


M_PRINCIPAL_AXIS_3_Z

Retrieves the Z-component of the normalized vector along the third principal axis, which is the axis perpendicular to the first and second principal axes.


M_SEMI_ORIENTED_BOX_ANGLE

Retrieves the angle of the semi-oriented bounding box's rotation around the Z-axis, measured from the X-axis to the box's longest XY-side, respecting the right-hand rule.

ValueDescription
0.0 <= Value < 180.0Specifies the angle of the semi-oriented bounding box.

M_SIZE_X

Retrieves the size in X of the blob's bounding box. The default bounding box is axis-aligned. To specify the PCA or semi-oriented box, use the respective combination values M_PCA_BOX or M_SEMI_ORIENTED_BOX.


M_SIZE_Y

Retrieves the size in Y of the blob's bounding box. The default bounding box is axis-aligned. To specify the PCA or semi-oriented box, use the respective combination values M_PCA_BOX or M_SEMI_ORIENTED_BOX.


M_SIZE_Z

Retrieves the size in Z of the 3D blob's bounding box. The default bounding box is axis-aligned. To specify the PCA or semi-oriented box, use the respective combination values M_PCA_BOX or M_SEMI_ORIENTED_BOX.


M_STANDARD_DEVIATION_X

Retrieves the standard deviation of points in the blob along the X-axis. This is equivalent to the following formula, where N is the number of points in the blob, and _xi _ and_µx _ are the X-coordinates of the blob's i th point and centroid, respectively: [Image: 3dblob_StdDevFormula_X.png]


M_STANDARD_DEVIATION_Y

Retrieves the standard deviation of points in the blob along the Y-axis. This is equivalent to the following formula, where N is the number of points in the blob, and _yi _ and_µy _ are the Y-coordinates of the blob's i th point and centroid, respectively: [Image: 3dblob_StdDevFormula_Y.png]


M_STANDARD_DEVIATION_Z

Retrieves the standard deviation of points in the blob along the Z-axis. This is equivalent to the following formula, where N is the number of points in the blob, and _zi _ and_µz _ are the Z-coordinates of the blob's i th point and centroid, respectively: [Image: 3dblob_StdDevFormula_Z.png]

Combination Constants — For specifying the type of bounding box

Optional.

Usage: You can add one of the following values to the above-mentioned values to specify the type of bounding box for which to return results.

ValueDescription
M_PCA_BOXSpecifies to return results associated with the PCA bounding box.
M_SEMI_ORIENTED_BOXSpecifies to return results associated with the semi-oriented bounding box.

Combination Constants — For retrieving Feret contact points

Optional.

Usage: You can add one of the following values to the above-mentioned values to specify to retrieve the contact points of the Feret.

To retrieve these results, you must have enabled M_FERET_CONTACT_POINTS (using M3dblobControl).

ValueDescription
M_FERET_CONTACT_POINTS_X1Retrieves the X-coordinate of the start point of the blob's Feret diameter.
M_FERET_CONTACT_POINTS_X2Retrieves the X-coordinate of the end point of the blob's Feret diameter.
M_FERET_CONTACT_POINTS_Y1Retrieves the Y-coordinate of the start point of the blob's Feret diameter.
M_FERET_CONTACT_POINTS_Y2Retrieves the Y-coordinate of the end point of the blob's Feret diameter.
M_FERET_CONTACT_POINTS_Z1Retrieves the Z-coordinate of the start point of the blob's Feret diameter.
M_FERET_CONTACT_POINTS_Z2Retrieves the Z-coordinate of the end point of the blob's Feret diameter.

Combination Constants — For retrieving the Feret direction

Optional.

Usage: You can add one of the following values to the above-mentioned values to specify to retrieve the direction of the Feret.

ValueDescription
M_FERET_DIRECTION_XRetrieves the X-component of the Feret's direction vector. For example, the direction of M_FERET_X is (1, 0, 0).
M_FERET_DIRECTION_YRetrieves the Y-component of the Feret's direction vector. For example, the direction of M_FERET_Y is (0, 1, 0).
M_FERET_DIRECTION_ZRetrieves the Z-component of the Feret's direction vector. For example, the direction of M_FERET_Z is (0, 0, 1).

Combination Constants — For retrieving the closest points between neighboring 3D blobs

Optional.

Usage: You can add one of the following values to the above-mentioned values to get the coordinates of the closest points between the current blob and its nearest neighbor.

ValueDescription
M_NEAREST_POINT_X1Retrieves the X-coordinate of the point inside the current blob that is closest to the nearest neighboring blob.
M_NEAREST_POINT_X2Retrieves the X-coordinate of the point inside the nearest neighboring blob that is closest to the current blob.
M_NEAREST_POINT_Y1Retrieves the Y-coordinate of the point inside the current blob that is closest to the nearest neighboring blob.
M_NEAREST_POINT_Y2Retrieves the Y-coordinate of the point inside the nearest neighboring blob that is closest to the current blob.
M_NEAREST_POINT_Z1Retrieves the Z-coordinate of the point inside the current blob that is closest to the nearest neighboring blob.
M_NEAREST_POINT_Z2Retrieves the Z-coordinate of the point inside the nearest neighboring blob that is closest to the current blob.

Combination Constants — For determining whether results are available

Optional.

Usage: You can add one of the following values to the above-mentioned values to determine whether a result is available.

M_AVAILABLE

Retrieves whether the requested result type is available for retrieval.

ValueDescription
M_FALSESpecifies that the requested result type is not available.
M_TRUESpecifies that the requested result type is available.

Combination Constants — For specifying the data type

Optional.

Usage: You can add one of the following values to the above-mentioned values to cast the requested information to the required data type.

M_TYPE_AIL_DOUBLE

Casts the requested information to an AIL_DOUBLE.

M_TYPE_AIL_FLOAT

Casts the requested information to an AIL_FLOAT.

M_TYPE_AIL_INT

Casts the requested information to an AIL_INT.

M_TYPE_AIL_INT32

Casts the requested information to an AIL_INT32.

M_TYPE_AIL_INT64

Casts the requested information to an AIL_INT64.

Return Value

Type: AIL_DOUBLE

The returned value is the requested information, cast to an AIL_DOUBLE. If the requested information does not fit into an AIL_DOUBLE, this function will return M_NULL or truncate the information.

To retrieve this result, you must have set M_GLOBAL_NORMAL_DISTANCE_MAX (using M3dblobControl) to a specific angle value (not M_INFINITE).

Note: This result is internally calculated during the segmentation, provided the above condition.

To retrieve this result, you must have enabled M_BOUNDING_BOX (using M3dblobControl).

To retrieve this result, you must have enabled M_BOUNDING_BOX, M_PCA_BOX, or M_SEMI_ORIENTED_BOX (using M3dblobControl).

To retrieve this result, you must have enabled M_CENTROID (using M3dblobControl). Otherwise, you must have enabled M_MOMENTS and set M_MOMENT_ORDER to an order of at least 1.

To retrieve this result, you must have enabled M_MOMENTS (using M3dblobControl) and set M_MOMENT_ORDER to an order of at least 2.

To retrieve this result, you must have enabled M_PCA (using M3dblobControl). Otherwise, you must have enabled M_MOMENTS and set M_MOMENT_ORDER to an order of at least 2.

To retrieve this result, you must have enabled M_SEMI_ORIENTED_BOX (using M3dblobControl).

Copyright © 2026 Zebra Technologies.