38 #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_MEDIAN_DISTANCE_HPP_
39 #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_MEDIAN_DISTANCE_HPP_
49 std::vector <double> dists;
50 dists.resize (original_correspondences.size ());
52 for (
size_t i = 0; i < original_correspondences.size (); ++i)
56 dists[i] = data_container_->getCorrespondenceScore (original_correspondences[i]);
60 dists[i] = original_correspondences[i].distance;
63 nth_element (dists.begin (), dists.begin () + (dists.size () / 2), dists.end ());
64 median_distance_ = dists [dists.size () / 2];
66 unsigned int number_valid_correspondences = 0;
67 remaining_correspondences.resize (original_correspondences.size ());
69 for (
size_t i = 0; i < original_correspondences.size (); ++i)
71 if ( dists[i] < median_distance_ * factor_)
73 remaining_correspondences[number_valid_correspondences] = original_correspondences[i];
74 ++number_valid_correspondences;
77 remaining_correspondences.resize (number_valid_correspondences);