Yiz*_*zhi 6 3d mesh 3d-reconstruction meshlab ply-file-format
例如,我想从所有点云中选择两个点,并在它们之间画一条线。我正在使用 Meshlab 处理 .ply 文件,但我不知道如何完成。我可以使用 Meshlab 或其他方式做到这一点吗?
有一种方法可以将行添加到 .ply 文件中。.ply 文件中最常用的元素是vertex和face,但.ply 文件格式还允许使用 来定义段,edge而Meshlab仅部分支持这些元素。
这是具有两个顶点和一个边元素的 .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
Run Code Online (Sandbox Code Playgroud)
这是一个更复杂的示例,每个顶点都有颜色,立方体的角上有 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
Run Code Online (Sandbox Code Playgroud)
这就是 meshlab 对前面的示例进行光栅化的方式
正如我所说,meshlabedge仅部分支持 element,因此它存在一些问题:
Meshlab 在表示具有edge和face元素的文件时存在问题。仅当边缘位于与面不同的图层中时,它才会正确绘制它们(如下图所示)。因此,如果您需要绘制包含面和线的 .ply 文件,则必须:
edge元素在该图层上可见。这些face元素在原始图层中仍然可见。