| Customize Help
| Save Settings

M3dimSample



Function Map
Synopsis
Subsample a point cloud to generate a less dense point cloud, or sample a meshed point cloud to generate a denser point cloud.
Syntax
void M3dimSample(
MIL_ID SampleContext3dimId, //in
MIL_ID SrcContainerBufId, //in
MIL_ID DstContainerBufId, //in
MIL_INT64 ControlFlag //in
)
Description

This function reduces the number of points in a point cloud (subsampling) or increases the number of points in a meshed point cloud (surface sampling).

For subsampling, the function subsamples the source container's point cloud (M_COMPONENT_RANGE and M_COMPONENT_CONFIDENCE components), and places the resulting less dense point cloud into the destination container. If an M_COMPONENT_NORMALS_MIL component exists in the source container, it is subsampled and the new normals component is added to the destination container. Typically, the source container's M_COMPONENT_REFLECTANCE component (if it exists) is also subsampled.

For surface sampling, the function samples the surface of a meshed point cloud, and places a denser (non-meshed) point cloud into the destination container. New M_COMPONENT_RANGE and M_COMPONENT_CONFIDENCE components are generated for the destination container, as well as a new M_COMPONENT_NORMALS_MIL component (regardless of whether an M_COMPONENT_NORMALS_MIL component exists in the source container). In addition, if the source container has an M_COMPONENT_REFLECTANCE component, destination reflectance values are interpolated for a destination M_COMPONENT_REFLECTANCE component.

When using M3dimSample(), regardless of the existence of a mesh structure (M_COMPONENT_MESH_MIL component) associated with the source point cloud, the destination point cloud will not have a mesh structure; subsampling or surface sampling invalidates the mesh. If an M_COMPONENT_MESH_MIL component exists in the destination container, it is deleted.

Note that, if the source container has both M_COMPONENT_REFLECTANCE and M_COMPONENT_INTENSITY components, the reflectance component is sampled or subsampled and the intensity component is copied to the destination container unmodified, unless the reflectance component is not in the right format. In this case, the intensity component is subsampled or surface sampled, with the resulting M_COMPONENT_INTENSITY component added to the destination container. If only 1 component of these types exist (reflectance or intensity), that component is subsampled or surface sampled.

Note that any component in the source container that is not listed above is copied to the destination unmodified, when subsampling or surface sampling.

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 if there is complementary information.
Parameters
This function is not supported on the selected boards.
Parameters
SampleContext3dimId

Specifies a subsample or surface sample 3D image processing context.

function map For specifying the subsample or surface sample 3D image processing context identifier
Click to summarizeValue Description
Click to summarize MIL subsample 3D image processing context
identifier

Specifies the identifier of a subsample 3D image processing context, previously allocated using M3dimAlloc() with M_SUBSAMPLE_CONTEXT.

The function applies the subsample control settings specified using M3dimControl().

(summarize)
Click to summarize MIL surface sample 3D image processing
context identifier

Specifies the identifier of a surface sample 3D image processing context, previously allocated using M3dimAlloc() with M_SURFACE_SAMPLE_CONTEXT.

The function applies the surface sample control settings specified using M3dimControl().

(summarize)
SrcContainerBufId

Specifies the identifier of the source container containing a 3D-processable point cloud. The container must be 3D-processable (that is, if you call MbufInquireContainer() with M_3D_PROCESSABLE, the function returns M_PROCESSABLE).

The container must have been previously allocated using MbufAllocContainer() with M_PROC. The container must have the components M_COMPONENT_RANGE and M_COMPONENT_CONFIDENCE and, for surface sampling, the component M_COMPONENT_MESH_MIL.

DstContainerBufId

Specifies the identifier of the destination container in which to place the generated point cloud. The container must have been previously allocated using MbufAllocContainer() with M_PROC, and must not be a child container.

ControlFlag

Reserved for future expansion and must be set to M_DEFAULT.

Compilation information
Header Include mil.h.
Library Use mil.lib; mil3dim.lib.
DLL Requires mil.dll; mil3dim.dll.
NOT PROCESSABLE PROC