在ROS中使用kinect v2根据颜色获取点云数据的质心

Get centroid of point cloud data based on color using kinect v2 in ROS

我想使用kinect v2获取基于颜色的点云数据的质心。即使搜索了很长时间,我也找不到可以完成这项任务的包。但由于这是一个普遍问题,我认为应该有一个现有的包。

请帮忙。提前致谢!

如果您使用 PCL,您可以

pcl::PointXYZRGB centroid;
pcl::computeCentroid(*cloud, centroid);

否则就是点数的平均值。例如:

                pcl::PointXYZI centroid;

                float x = 0, y = 0, z = 0;
                for (int k = 0; k < cloud->size(); k++)
                {
                   x += cloud->at(k).x;
                   y += cloud->at(k).y;
                   z += cloud->at(k).z;
                }
                centroid.x = x / (cloud->size() + 0.0);
                centroid.y = y / (cloud->size() + 0.0);
                centroid.z = z / (cloud->size() + 0.0);