MLDepthFeature
abstract class NatML.Features.MLDepthFeature : MLFeature
This feature is used to provide depth data to predictors that require such data. Implementers can derive from this class and provide custom logic for sampling depth given a pixel location.
Creating the Feature
/// <summary>
/// Initialize the depth feature with the depth map dimensions.
/// </summary>
/// <param name="width">Depth map width.</param>
/// <param name="height">Depth map height.</param>
protected MLDepthFeature (int width, int height);
The depth feature is constructed by specifying the feature size. The data type is assumed to be float32
. If the data type is different, the full feature type can be specified instead:
/// <summary>
/// Initialize the depth feature with the depth map feature type.
/// </summary>
/// <param name="type">Depth map feature type.</param>
protected MLDepthFeature (MLImageType type);
Inspecting the Feature
The depth feature exposes its underlying type
, along with convenience properties for inspecting the aforementioned type
.
Feature Type
/// <summary>
/// Feature type.
/// </summary>
MLFeatureType type { get; }
Refer to the Inspecting the Feature section of the MLFeature
class for more information.
Depth Map Width
/// <summary>
/// Depth map width.
/// </summary>
int width { get; }
The depth feature provides this convenience property for accessing the width
of the feature type
.
Depth Map Height
/// <summary>
/// Depth map height.
/// </summary>
int height { get; }
The depth feature provides this convenience property for accessing the height
of the feature type
.
Sampling Pixel Depth
/// <summary>
/// Sample the depth feature at a given point.
/// </summary>
/// <param name="point">Point to sample in normalized coordinates.</param>
/// <returns>Depth in meters.</returns>
abstract float Sample (Vector2 point);
The depth feature defines the Sample
method for sampling the depth at a given normalized viewport coordinate.
The depth unit is assumed to be in meters, except defined otherwise by implementations.
Projecting to 3D Space
/// <summary>
/// Project a 2D point into 3D world space using depth.
/// </summary>
/// <param name="point">Point to transform in normalized camera coordinates.</param>
/// <returns>Projected point in 3D world space.</param>
abstract Vector3 Unproject (Vector2 point);
The depth feature defines the ViewportToWorldPoint
for projecting a normalized 2D viewport point into 3D space using its underlying depth data.
Last updated
Was this helpful?