43 #include <pcl/registration/eigen.h>
52 namespace registration
58 if (correspondences.empty ())
61 double sum = 0, sq_sum = 0;
63 for (
const auto &correspondence : correspondences)
65 sum += correspondence.distance;
66 sq_sum += correspondence.distance * correspondence.distance;
68 mean = sum /
static_cast<double> (correspondences.size ());
69 double variance = (sq_sum - sum * sum /
static_cast<double> (correspondences.size ())) /
static_cast<double> (correspondences.size () - 1);
70 stddev = sqrt (variance);
76 indices.resize (correspondences.size ());
77 for (std::size_t i = 0; i < correspondences.size (); ++i)
78 indices[i] = correspondences[i].index_query;
85 indices.resize (correspondences.size ());
86 for (std::size_t i = 0; i < correspondences.size (); ++i)
87 indices[i] = correspondences[i].index_match;
void getCorDistMeanStd(const pcl::Correspondences &correspondences, double &mean, double &stddev)
calculates the mean and standard deviation of descriptor distances from correspondences ...
void getMatchIndices(const pcl::Correspondences &correspondences, std::vector< int > &indices)
extracts the match indices
void getQueryIndices(const pcl::Correspondences &correspondences, std::vector< int > &indices)
extracts the query indices
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences