Aprendizaje de PCL en la biblioteca de nubes de puntos: corte de plano en espacio tridimensional (uso de PlaneClipper3D)

Cuando se usa PCL para realizar el filtrado espacial en una nube de puntos, PassThrough solo puede lograr el filtrado en la dirección del eje de coordenadas, y PlaneClipper3D puede dividir el espacio de la nube de puntos con cualquier plano, que es más flexible. Aquí se explica cómo usarlo:

Función definida:

pcl::PointCloud<PointT>::Ptr plane_clip(const pcl::PointCloud<PointT>::Ptr& src_cloud, const Eigen::Vector4f& plane, bool negative) 
{
       pcl::PlaneClipper3D<PointT> clipper(plane);
       pcl::PointIndices::Ptr indices(new pcl::PointIndices);
       clipper.clipPointCloud3D(*src_cloud, indices->indices);
       pcl::PointCloud<PointT>::Ptr dst_cloud(new pcl::PointCloud<PointT>);
       pcl::ExtractIndices<PointT> extract;
       extract.setInputCloud(src_cloud);
       extract.setIndices(indices);
       extract.setNegative(negative);
       extract.filter(*dst_cloud);
       return dst_cloud;
}

Uso:

1. Introduzca el archivo de encabezado #include <pcl / filters / plane_clipper3D.h>
2. Llame a la función, los parámetros de entrada son (nube de puntos de entrada, parámetros de plano, dirección de segmentación)

cloud_out = plane_clip(cloud_in, Eigen::Vector4f(1.0,1.0, 1.0,1.0), false);
22 artículos originales publicados · Me gusta2 · Visitas 1157

Supongo que te gusta

Origin blog.csdn.net/qinqinxiansheng/article/details/105492925
Recomendado
Clasificación