MIL_ID SampleContext3dimId, | //in |
MIL_ID SrcContainerBufId, | //in |
MIL_ID DstContainerBufId, | //in |
MIL_INT64 ControlFlag | //in |
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.
Specifies a subsample or surface sample 3D image processing context.
For specifying the subsample or surface sample 3D
image processing context identifier
|
|||||||||||||||||||||||||||||||||||||||
Value | Description | ||||||||||||||||||||||||||||||||||||||
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)Specifies the identifier of a subsample 3D image processing context, previously allocated using M3dimAlloc() with M_SUBSAMPLE_CONTEXT. (more details...) |
||||||||||||||||||||||||||||||||||||||
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)Specifies the identifier of a surface sample 3D image processing context, previously allocated using M3dimAlloc() with M_SURFACE_SAMPLE_CONTEXT. (more details...) |
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.
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.
Header | Include mil.h. |
Library | Use mil.lib; mil3dim.lib. |
DLL | Requires mil.dll; mil3dim.dll. |