7

例如,我想从所有点云中选择两个点,并在它们之间画一条线。我正在使用 Meshlab 处理 .ply 文件,但我不知道如何完成。我可以使用 Meshlab 或其他方式做到这一点吗?

4

2 回答 2

3

有一种方法可以将行添加到 .ply 文件。.ply 文件中最常用的元素是vertexface,但.ply 文件格式还允许使用edgeMeshlab仅部分支持的分段定义。

这是具有两个顶点和一个边元素的 .ply 文件的最小示例

ply
format ascii 1.0
comment object: A single line
element vertex 2
property float x
property float y
property float z
element edge 1                        
property int vertex1                  
property int vertex2                  
end_header
0 0 0 
0 0 1 
0 1

这是一个更复杂的例子,每个顶点有颜色,立方体的角有 4 条线。

ply
format ascii 1.0
comment object: 4 edges with color per vertex
element vertex 8
property float x
property float y
property float z
property uchar red                   
property uchar green
property uchar blue
element edge 4
property int vertex1                  
property int vertex2                  
end_header

0 0 0 255 0 0 
0 0 1 255 0 0
0 1 1 255 0 0
0 1 0 255 0 0
1 0 0 0 0 255
1 0 1 0 0 255
1 1 1 0 0 255
1 1 0 0 0 255

0 4 
1 5 
2 6 
3 7 

这就是之前的示例是如何被 meshlab 栅格化的

样本 2 的输出

正如我所说,meshlabedge仅部分支持元素,因此存在一些问题:

  • Meshlab 将加载带有边缘元素的 .ply 文件,但不会保存为 ply 文件格式。它只会将顶点和面导出到文件。
  • Meshlab 在用edgeface元素表示文件时遇到问题。只有当边缘与面位于单独的层中时,它才会正确绘制它们(如下图所示)。因此,如果您需要绘制一个包含面和线的 .ply 文件,则必须:

    1. 复制当前图层。
    2. 从新图层中选择所有面并删除它们(Del 键),因此edge元素在该图层上可见。元素在face原始图层中仍然可见。

边和面仅显示在单独的图层中

于 2019-10-31T17:04:44.180 回答
0

如果您只是对在任何网格上绘制一些临时段感兴趣,您可以使用Measuring Tool来绘制一些线。请记住,如果您退出测量工具,这些行将会丢失。

在此处输入图像描述

于 2019-11-04T08:33:50.477 回答