首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Meshlab中加载标记点云?

如何在Meshlab中加载标记点云?
EN

Stack Overflow用户
提问于 2017-05-22 12:59:13
回答 1查看 1.3K关注 0票数 1

我目前正在使用(PCL)来做点云的一些工作。现在我需要为某个点云计算一个网格,并认为最好的方法是使用Meshlab。到目前为止,我的问题是,我的点云有标签,即它的形式如下:

代码语言:javascript
复制
pcl::PointCloud<pcl::PointXYZRGBL> cloud;

重要事项:我不能省略标签,我必须知道网格被计算后,网格的哪个点有哪个标签。稍后,经过一些操作等,我将这个云保存在

代码语言:javascript
复制
pcl::io::savePLYFileBinary(writePath, *cloud);

如果云是类型的,它可以正常工作。

代码语言:javascript
复制
pcl::PointCloud<pcl::PointXYZRGB> cloud;

但不适用于第一种情况。有人知道我能做些什么才能得到一个包含标签并可以加载到Meshlab中的PLY文件吗?

谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-24 09:45:55

由于MeshLab无法打开标记的点云,我建议:

  1. 将点云导出为MeshLab可读的格式(例如,您提到的pcl::PointCloud<pcl::PointXYZRGB> )。
  2. 用圆球旋转等插值方法重建三角形网格。为了将原始点保持为网格的顶点,必须采用插值方法。完成后,保存网格。
  3. 加载匹配点与原始点云匹配的网格,这样您就可以恢复标签和任何其他相关属性。在快速测试中,我甚至让顶点的顺序与点的顺序相匹配。

更新

您在评论中提到,您使用的是屏蔽的泊松重建。该方法以输入点作为位置约束,提高了方法的精度,但仍然是一种近似方法,因此输出顶点不能保证与输入点匹配(而且可能不会匹配)。

您可以切换到插值方法(如果噪声和异常值允许的话),或者为每个顶点找到最近的点(就像现在这样使用一个1-NN )来标记顶点。

以上对所有离散值都有效。您还应该调整其他值,例如颜色,以更好地匹配重构(顶点不匹配点)。要做到这一点,可以从k中插入相应的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44113517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档