例如,我想从所有点云中选择两个点,并在它们之间画一条线。我正在使用 Meshlab 处理 .ply 文件,但我不知道如何完成。我可以使用 Meshlab 或其他方式做到这一点吗?
问问题
2904 次
2 回答
3
有一种方法可以将行添加到 .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
这是一个更复杂的例子,每个顶点有颜色,立方体的角有 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 栅格化的
正如我所说,meshlabedge
仅部分支持元素,因此存在一些问题:
- Meshlab 将加载带有边缘元素的 .ply 文件,但不会保存为 ply 文件格式。它只会将顶点和面导出到文件。
Meshlab 在用
edge
和face
元素表示文件时遇到问题。只有当边缘与面位于单独的层中时,它才会正确绘制它们(如下图所示)。因此,如果您需要绘制一个包含面和线的 .ply 文件,则必须:- 复制当前图层。
- 从新图层中选择所有面并删除它们(Del 键),因此
edge
元素在该图层上可见。元素在face
原始图层中仍然可见。
于 2019-10-31T17:04:44.180 回答