ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
Registration.cpp File Reference
Include dependency graph for Registration.cpp:

Go to the source code of this file.

Namespaces

 cloudViewer
 Generic file read and write utility for python interface.
 
 cloudViewer::t
 
 cloudViewer::t::pipelines
 
 cloudViewer::t::pipelines::registration
 

Functions

static RegistrationResult cloudViewer::t::pipelines::registration::ComputeRegistrationResult (const geometry::PointCloud &source, const core::nns::NearestNeighborSearch &target_nns, const double max_correspondence_distance, const core::Tensor &transformation)
 
RegistrationResult cloudViewer::t::pipelines::registration::EvaluateRegistration (const geometry::PointCloud &source, const geometry::PointCloud &target, double max_correspondence_distance, const core::Tensor &transformation=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")))
 Function for evaluating registration between point clouds. More...
 
RegistrationResult cloudViewer::t::pipelines::registration::ICP (const geometry::PointCloud &source, const geometry::PointCloud &target, const double max_correspondence_distance, const core::Tensor &init_source_to_target=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), const TransformationEstimation &estimation=TransformationEstimationPointToPoint(), const ICPConvergenceCriteria &criteria=ICPConvergenceCriteria(), const double voxel_size=-1.0, const std::function< void(const std::unordered_map< std::string, core::Tensor > &)> &callback_after_iteration=nullptr)
 Functions for ICP registration. More...
 
static void cloudViewer::t::pipelines::registration::AssertInputMultiScaleICP (const geometry::PointCloud &source, const geometry::PointCloud &target, const std::vector< double > &voxel_sizes, const std::vector< ICPConvergenceCriteria > &criterias, const std::vector< double > &max_correspondence_distances, const core::Tensor &init_source_to_target, const TransformationEstimation &estimation, const int64_t &num_iterations, const core::Device &device, const core::Dtype &dtype)
 
static std::tuple< std::vector< t::geometry::PointCloud >, std::vector< t::geometry::PointCloud > > cloudViewer::t::pipelines::registration::InitializePointCloudPyramidForMultiScaleICP (const geometry::PointCloud &source, const geometry::PointCloud &target, const std::vector< double > &voxel_sizes, const double &max_correspondence_distance, const TransformationEstimation &estimation, const int64_t &num_iterations)
 
static std::tuple< RegistrationResult, int > cloudViewer::t::pipelines::registration::DoSingleScaleICPIterations (geometry::PointCloud &source, const geometry::PointCloud &target, const core::nns::NearestNeighborSearch &target_nns, const ICPConvergenceCriteria &criteria, const double max_correspondence_distance, const TransformationEstimation &estimation, const int scale_idx, const int prev_iteration_count, const core::Device &device, const core::Dtype &dtype, const RegistrationResult &current_result, const std::function< void(std::unordered_map< std::string, core::Tensor > &)> &callback_after_iteration)
 
RegistrationResult cloudViewer::t::pipelines::registration::MultiScaleICP (const geometry::PointCloud &source, const geometry::PointCloud &target, const std::vector< double > &voxel_sizes, const std::vector< ICPConvergenceCriteria > &criteria_list, const std::vector< double > &max_correspondence_distances, const core::Tensor &init_source_to_target=core::Tensor::Eye(4, core::Float64, core::Device("CPU:0")), const TransformationEstimation &estimation=TransformationEstimationPointToPoint(), const std::function< void(const std::unordered_map< std::string, core::Tensor > &)> &callback_after_iteration=nullptr)
 Functions for Multi-Scale ICP registration. It will run ICP on different voxel level, from coarse to dense. The vector of ICPConvergenceCriteria(relative fitness, relative rmse, max_iterations) contains the stopping condition for each voxel level. The length of voxel_sizes vector, criteria vector, max_correspondence_distances vector must be same, and voxel_sizes must contain positive values in strictly decreasing order [Lower the voxel size, higher is the resolution]. Only the last value of the voxel_sizes vector can be {-1}, as it allows to run on the original scale without downsampling. More...
 
core::Tensor cloudViewer::t::pipelines::registration::GetInformationMatrix (const geometry::PointCloud &source, const geometry::PointCloud &target, const double max_correspondence_distance, const core::Tensor &transformation)
 Computes Information Matrix, from the transfromation between source and target pointcloud. It returns the Information Matrix of shape {6, 6}, of dtype Float64 on device CPU:0. More...