计算出纸箱上的四个圆的圆心坐标和半径,对圆心坐标进行排序,沿着X+方向排序并把排序后的圆心坐标保存到本地。
- // 此函数用于估计点云的边界,并将边界点保存到文件中
- void BoundaryEstimation(pcl::PointCloud
::Ptr cloud) - {
- // 移除输入点云中的NaN值(非法点)
- std::vector<int> indices;
- pcl::removeNaNFromPointCloud(*cloud, *cloud, indices);
-
- // 估计点云的表面法线
- pcl::PointCloud
::Ptr normals (new pcl::PointCloud) ; - pcl::search::KdTree
::Ptr tree (new pcl::search::KdTree) ; - pcl::NormalEstimation
ne; - ne.setInputCloud(cloud);
- ne.setSearchMethod(tree);
- ne.setKSearch(50); // 设置K最近邻搜索的数量
- ne.compute(*normals);
-
- // 计算点云的边界
- pcl::PointCloud
::Ptr boundaries (new pcl::PointCloud) ; - pcl::BoundaryEstimation
est; - est.setInputCloud(cloud);
- e