24,860
社区成员




//创建搜索树
pcl::search::KdTree<pcl::PointXYZRGBNormal>::Ptr tree2(new pcl::search::KdTree<pcl::PointXYZRGBNormal>);
tree2->setInputCloud(cloud_with_normals);
//创建Poisson对象,并设置参数
pcl::Poisson<pcl::PointXYZRGBNormal> pn;
pn.setConfidence(false); //法向量归一
pn.setDegree(2); //设置参数degree[1,5],值越大越精细,耗时越久。
pn.setDepth(8); //树的最大深度,求解2^d x 2^d x 2^d立方体元。由于八叉树自适应采样密度,指定值仅为最大深度。
pn.setIsoDivide(8); //提取ISO等值面的算法的深度
pn.setManifold(false); //添加多边形的重心
pn.setOutputPolygons(false); //输出多边形网格
pn.setSamplesPerNode(3.0); //八叉树结点中的样本点的最小数量。无噪声,[1.0-5.0],有噪声[15.-20.]平滑
pn.setScale(1.05); //重构的立方体直径和样本边界立方体直径的比率。
pn.setSolverDivide(8); //求解线性方程组的Gauss-Seidel迭代方法的深度
//pn.setIndices();
//设置搜索方法和输入点云
pn.setSearchMethod(tree2);
pn.setInputCloud(cloud_with_normals);
//创建多变形网格,用于存储结果
pcl::PolygonMesh mesh;
//执行重构
pn.performReconstruction(mesh);
//保存网格图
pcl::io::savePLYFile("result.ply", mesh);