删除PCL可视化工具内定义的3D框外部的点

时间:2017-08-21 06:48:18

标签: c++ point-cloud-library

在给定的点云中,我想删除所有minmax和{{1}小于x且大于y的所有点方向。以下是示例代码:

z

似乎只应用了最后一个过滤器。有什么解决方案吗?

2 个答案:

答案 0 :(得分:11)

使用pcl::CropBox怎么样? (documentation

pcl::CropBox<pcl::PointXYZRGBA> boxFilter;
boxFilter.setMin(Eigen::Vector4f(minX, minY, minZ, 1.0));
boxFilter.setMax(Eigen::Vector4f(maxX, maxY, maxZ, 1.0));
boxFilter.setInputCloud(body);
boxFilter.filter(*bodyFiltered);

答案 1 :(得分:4)

您已找到documentation明确的内容。

  

PassThrough基于一个约束传递云中的点   点类型的特定字段。

对于多个字段,应使用不同的过滤器,例如ConditionalRemoval

以下是未经测试的,但它会是这样的。

private void DG_search_by_device_AutoGeneratedColumns(object sender, EventArgs e)
        {
            var dgrd = sender as DataGrid;
            {
                var c = dgrd.Columns[0];
                dgrd.Columns.RemoveAt(0);
                dgrd.Columns.Add(c);
            }
        }