gpt4 book ai didi

c# - 使用 Helix-Toolkit 在 C# 中显示 .ply 点云

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:15 27 4
gpt4 key购买 nike

我正在尝试从包含顶点的 .ply 文件创建点云(v x y z r g b) 和它们从 Kinect v2 记录的颜色。到目前为止我尝试了什么:

起初我用MeshLab检查我的.ply文件是否正确。这是。所以我尝试将 .ply 文件导出为 .obj 以使用 Helix-Toolkits

HelixToolkit.Wpf.ModelImporter

但是,无论是在使用我自己的代码还是在 Helix-Toolkit 示例中使用 ModelViewer 时,这都会给我一个空白屏幕。这可能是因为 ply 文件不包含有关面的信息。

1.有没有一种简单的方法可以从 ply 创建 obj 文件,并在此过程中添加面孔?

2.是否有另一种 - 可能更好的方法 - 从 ply 文件创建点并使用 Helix 在屏幕上显示它们?

最佳答案

我将解决您的第二个问题,因为我对您的第一个问题一无所知。

假设你可以读入顶点数据,将云数据读入像 Point3D 列表这样的集合结构。

Point3DCollection dataList = new Point3DCollection();

//read from ply file and append the positions to the dataList. i.e. dataList.Add(new Point3D(x,y,x));
PointsVisual3D cloudPoints = new PointsVisual3D { Color = Colors.Red, Size = 5 };

cloudPoints.Points = dataList;

在您的 XAML 中,为螺旋视口(viewport)命名,以便它可以在 C# 中引用

<h:HelixViewport3D x:Name="HViewPort">
<h:DefaultLights/>

</h:HelixViewport3D>

在 C# 中

HViewPort.Children.Add(cloudPoints);

注意:这将以与初始化时指定的颜色相同的颜色显示所有点。因此,将数据的 rgb 值保留在单独的列表中可能值得。

到目前为止,我不知道如何将颜色分配给单个 PointVisual3D。如果您弄明白了,请分享。

另一种方法是创建以数据点为中心的单个 3D 球体,然后为它们分配记录的 rgb 值。我会注意这种方法,因为它的性能很重要并且取决于数据大小。

祝你好运:)

关于c# - 使用 Helix-Toolkit 在 C# 中显示 .ply 点云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30545764/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com