Open3D (C++ API)  0.11.0
Data Structures | Functions
open3d::ml::contrib Namespace Reference

Data Structures

struct  PointCloud
 
class  PointXYZ
 
class  SampledData
 

Functions

PointXYZ max_point (std::vector< PointXYZ > points)
 
PointXYZ min_point (std::vector< PointXYZ > points)
 
PointXYZ operator+ (const PointXYZ A, const PointXYZ B)
 
PointXYZ operator- (const PointXYZ A, const PointXYZ B)
 
PointXYZ operator* (const PointXYZ P, const float a)
 
PointXYZ operator* (const float a, const PointXYZ P)
 
std::ostream & operator<< (std::ostream &os, const PointXYZ P)
 
bool operator== (const PointXYZ A, const PointXYZ B)
 
const core::Tensor KnnSearch (const core::Tensor &query_points, const core::Tensor &dataset_points, int knn)
 
const core::Tensor RadiusSearch (const core::Tensor &query_points, const core::Tensor &dataset_points, const core::Tensor &query_batches, const core::Tensor &dataset_batches, double radius)
 
void grid_subsampling (std::vector< PointXYZ > &original_points, std::vector< PointXYZ > &subsampled_points, std::vector< float > &original_features, std::vector< float > &subsampled_features, std::vector< int > &original_classes, std::vector< int > &subsampled_classes, float sampleDl, int verbose)
 
void batch_grid_subsampling (std::vector< PointXYZ > &original_points, std::vector< PointXYZ > &subsampled_points, std::vector< float > &original_features, std::vector< float > &subsampled_features, std::vector< int > &original_classes, std::vector< int > &subsampled_classes, std::vector< int > &original_batches, std::vector< int > &subsampled_batches, float sampleDl, int max_p)
 
void brute_neighbors (std::vector< PointXYZ > &queries, std::vector< PointXYZ > &supports, std::vector< int > &neighbors_indices, float radius, int verbose)
 
void ordered_neighbors (std::vector< PointXYZ > &queries, std::vector< PointXYZ > &supports, std::vector< int > &neighbors_indices, float radius)
 
void batch_nanoflann_neighbors (std::vector< PointXYZ > &queries, std::vector< PointXYZ > &supports, std::vector< int > &q_batches, std::vector< int > &s_batches, std::vector< int > &neighbors_indices, float radius)
 

Function Documentation

◆ batch_grid_subsampling()

void open3d::ml::contrib::batch_grid_subsampling ( std::vector< PointXYZ > &  original_points,
std::vector< PointXYZ > &  subsampled_points,
std::vector< float > &  original_features,
std::vector< float > &  subsampled_features,
std::vector< int > &  original_classes,
std::vector< int > &  subsampled_classes,
std::vector< int > &  original_batches,
std::vector< int > &  subsampled_batches,
float  sampleDl,
int  max_p 
)

◆ batch_nanoflann_neighbors()

void open3d::ml::contrib::batch_nanoflann_neighbors ( std::vector< PointXYZ > &  queries,
std::vector< PointXYZ > &  supports,
std::vector< int > &  q_batches,
std::vector< int > &  s_batches,
std::vector< int > &  neighbors_indices,
float  radius 
)

TOOD: This is a temporary function for 3DML repositiory use. In the future, the native Open3D Python API should be improved and used.

Nearest neighbours withing a radius with batching. queries and supports are sliced with their respective batch elements. Uses nanoflann to build a KDTree and find neighbors.

◆ brute_neighbors()

void open3d::ml::contrib::brute_neighbors ( std::vector< PointXYZ > &  queries,
std::vector< PointXYZ > &  supports,
std::vector< int > &  neighbors_indices,
float  radius,
int  verbose 
)

◆ grid_subsampling()

void open3d::ml::contrib::grid_subsampling ( std::vector< PointXYZ > &  original_points,
std::vector< PointXYZ > &  subsampled_points,
std::vector< float > &  original_features,
std::vector< float > &  subsampled_features,
std::vector< int > &  original_classes,
std::vector< int > &  subsampled_classes,
float  sampleDl,
int  verbose 
)

◆ KnnSearch()

const core::Tensor open3d::ml::contrib::KnnSearch ( const core::Tensor query_points,
const core::Tensor dataset_points,
int  knn 
)

TOOD: This is a temory wrapper for 3DML repositiory use. In the future, the native Open3D Python API should be improved and used.

Parameters
query_pointsTensor of shape {n_query_points, d}, dtype Float32.
dataset_pointsTensor of shape {n_dataset_points, d}, dtype Float32.
knnInt.
Returns
Tensor of shape (n_query_points, knn), dtype Int32.

◆ max_point()

PointXYZ open3d::ml::contrib::max_point ( std::vector< PointXYZ points)

◆ min_point()

PointXYZ open3d::ml::contrib::min_point ( std::vector< PointXYZ points)

◆ operator*() [1/2]

PointXYZ open3d::ml::contrib::operator* ( const PointXYZ  P,
const float  a 
)
inline

◆ operator*() [2/2]

PointXYZ open3d::ml::contrib::operator* ( const float  a,
const PointXYZ  P 
)
inline

◆ operator+()

PointXYZ open3d::ml::contrib::operator+ ( const PointXYZ  A,
const PointXYZ  B 
)
inline

◆ operator-()

PointXYZ open3d::ml::contrib::operator- ( const PointXYZ  A,
const PointXYZ  B 
)
inline

◆ operator<<()

std::ostream& open3d::ml::contrib::operator<< ( std::ostream &  os,
const PointXYZ  P 
)
inline

◆ operator==()

bool open3d::ml::contrib::operator== ( const PointXYZ  A,
const PointXYZ  B 
)
inline

◆ ordered_neighbors()

void open3d::ml::contrib::ordered_neighbors ( std::vector< PointXYZ > &  queries,
std::vector< PointXYZ > &  supports,
std::vector< int > &  neighbors_indices,
float  radius 
)

TOOD: This is a temporary function for 3DML repositiory use. In the future, the native Open3D Python API should be improved and used.

Nearest neighbours within a given radius. For each query point, finds a set of neighbor indices whose distance is less than given radius. Modifies the neighbors_indices inplace.

◆ RadiusSearch()

const core::Tensor open3d::ml::contrib::RadiusSearch ( const core::Tensor query_points,
const core::Tensor dataset_points,
const core::Tensor query_batches,
const core::Tensor dataset_batches,
double  radius 
)

TOOD: This is a temory wrapper for 3DML repositiory use. In the future, the native Open3D Python API should be improved and used.

Parameters
query_pointsTensor of shape {n_query_points, d}, dtype Float32.
dataset_pointsTensor of shape {n_dataset_points, d}, dtype Float32.
query_batchesTensor of shape {n_batches,}, dtype Int32. It is required that sum(query_batches) == n_query_points.
dataset_batchesTensor of shape {n_batches,}, dtype Int32. It is required that that sum(dataset_batches) == n_dataset_points.
radiusThe radius to search.
Returns
Tensor of shape {n_query_points, max_neighbor}, dtype Int32, where max_neighbor is the maximum number neighbor of neighbors for all query points. For query points with less than max_neighbor neighbors, the neighbor index will be padded by -1.