I'm currently trying to understand the following C++ CPD Library:
https://github.com/gadomski/cpd
https://www.gadom.ski/cpd/index.html
I already have a framework which uses the PCL library for registration of point clouds and am currently trying to introduce the CPD registration as another option.
In the documentation of the CPD-Library the following code is given as an example on how to use the rigid variant of the CPD:
#include <cpd/rigid.hpp>
int main(int argc, char** argv) {
cpd::Matrix fixed = load_points_from_somewhere();
cpd::Matrix moving = load_points_from_somewhere();
cpd::RigidResult result = cpd::rigid(fixed, moving);
return 0;
}
"fixed" and "moving" are the point clouds defined as Eigen::MatrixXd (a matrix using double values).
To generate these matrices from pcl pointclouds (pcl::PointCloud< PointT >) I need to know what these double values mean. Is it the depth, some sort of weight or another value? Thank you.
Every row of those matrices is a point and every column is a coordinate of this corresponding point. So a point cloud describing a 3-dimensional space would need to become a n x 3 matrix where n equals the number of points within the point cloud.