C++代码获取PLY点云数据中Y值最大最小点
假设我们已经读入了PCL的ply点云数据,并存储在一个'pcl::PointCloudpcl::PointXYZ'类型的变量中。
首先,我们需要定义两个变量分别记录最大和最小的y值:
float maxY = -std::numeric_limits<float>::infinity();
float minY = std::numeric_limits<float>::infinity();
然后,我们遍历点云数据,对于每一个点,判断其y值是否比当前记录的最大或最小y值还要大或小,如果是的话,就更新最大或最小y值以及对应的点的索引:
int maxIndex = -1;
int minIndex = -1;
for (int i = 0; i < cloud->size(); i++) {
float y = cloud->points[i].y;
if (y > maxY) {
maxY = y;
maxIndex = i;
}
if (y < minY) {
minY = y;
minIndex = i;
}
}
最后,我们就可以得到最大和最小y值对应的点的坐标了:
pcl::PointXYZ maxPoint = cloud->points[maxIndex];
pcl::PointXYZ minPoint = cloud->points[minIndex];
原文地址: https://www.cveoy.top/t/topic/oLdI 著作权归作者所有。请勿转载和采集!