40 #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_TYPES_H_
41 #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_TYPES_H_
44 #include <pcl/registration/eigen.h>
50 if (correspondences.empty ())
53 double sum = 0, sq_sum = 0;
55 for (
size_t i = 0; i < correspondences.size (); ++i)
57 sum += correspondences[i].distance;
58 sq_sum += correspondences[i].distance * correspondences[i].distance;
60 mean = sum /
static_cast<double> (correspondences.size ());
61 double variance = (sq_sum - sum * sum /
static_cast<double> (correspondences.size ())) /
static_cast<double> (correspondences.size () - 1);
62 stddev = sqrt (variance);
69 indices.resize (correspondences.size ());
70 for (
size_t i = 0; i < correspondences.size (); ++i)
71 indices[i] = correspondences[i].index_query;
78 indices.resize (correspondences.size ());
79 for (
size_t i = 0; i < correspondences.size (); ++i)
80 indices[i] = correspondences[i].index_match;
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
void getQueryIndices(const pcl::Correspondences &correspondences, std::vector< int > &indices)
extracts the query indices
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