c++ - PCL:仅使用一个坐标,如何找到一个点或所有可能点的剩余两个坐标?
问题描述
假设我有一个点云,我只知道一个点的一个坐标。例如,使用pcl::getMinMax3D()
方法,我有 3 个最小值和 3 个最大值。
但是,问题是最小 X、Y 或 Z 值不一定对应于同一点!这些值很可能对应于三个不同的点。基本上,该方法返回最小(和最大值)值,而不是一个点。
因此,对任何坐标使用一个最小值或最大值,我想找到剩余的两个坐标,即最终是一个有效点或多个点。如何使用PCL
(点云库)来做到这一点?
解决方案
只需使用 STL 算法:
auto point = std::min_element(cloud.begin(), cloud.end(), [](auto& p1, auto& p2) {return p1.x < p2.x; });