在给定的点云中,我想删除所有min
,max
和{{1}小于x
且大于y
的所有点方向。以下是示例代码:
z
似乎只应用了最后一个过滤器。有什么解决方案吗?
答案 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);
}
}