泊松曲面重建算法

ZZ12365 2019-03-18 07:33:22
网上说泊松曲面重建算法是当前曲面重建效果比较好的。拿隧道点云试了一下,变形比较厉害,不知道是不是哪里参数没有设置好,有大神知道怎么改吗?代码用了pcl里的也用了开源的,都是这样。或者有没有别的曲面重建的方法效果比较好的可以推荐一下,感激不尽。

这是正常的图像:


泊松重建出来变成这样了:


贴一个pcl泊松重建参数代码:

//创建搜索树
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);
...全文
4072 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
请问裁剪代码有链接吗
weixin_44408511 2021-03-17
  • 打赏
  • 举报
回复
您好,请问裁剪代码在哪找你
ZZ12365 2021-02-22
  • 打赏
  • 举报
回复 2
回复一下大家,泊松重建会导致这个问题,作者还发布了另一个裁剪代码,在github可下载,用裁剪代码可解决这个问题。
2007044226 2020-04-23
  • 打赏
  • 举报
回复
同问,问题解决了吗?
weixin_40090672 2019-11-24
  • 打赏
  • 举报
回复
楼主您好,请问最后是通过修改树深度解决问题的吗,我试了一下好像并不可行,谢谢。
好运萝 2019-05-09
  • 打赏
  • 举报
回复
建议去看一下cloud compare的源码 也是开源的 里面有重建的算法和参数的设置 具体重建出来的质量应该跟生成格网的算法有关 还有就是点云的数目 树的深度啥的有关系
·荞麦疯长· 2022-03-08
  • 举报
回复
@好运萝 这里包含泊松重建的源码吗?

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧