显示点云连续C#Intel Realsense

问题描述

这可能是我先前关于在c#中使用Helix工具箱显示文件的问题的延续。该解决方案的问题在于它不是连续的,并且如果创建了一个文件,则会大大降低程序速度。 我制作点云的代码如下:

// copyVertices is extensible,any of these will do:
                            var vertices = new float[points.Count * 3];
                            // var vertices = new Intel.RealSense.Math.Vertex[points.Count];
                            // var vertices = new UnityEngine.Vector3[points.Count];
                            // var vertices = new System.Numerics.Vector3[points.Count]; // SIMD
                            // var vertices = new GlmSharp.vec3[points.Count];
                            //  var vertices = new byte[points.Count * 3 * sizeof(float)];
                            points.copyVertices(vertices);

然后使用以下行创建层文件

points.ExportToPLY("pointcloud.ply",colorFrame);

螺旋工具包的用法如下:

                Model3DGroup model1 = import.Load("pointcloud.ply");
                model.Content = model1;

其余的代码类似于librealsense的C#包装器: https://github.com/IntelRealSense/librealsense/tree/master/wrappers/csharp 有没有人知道如何使该点云显示连续?

解决方法

您使用的是HelixToolkit.Wpf还是HelixToolkit.SharpDX.Wpf?

如果您的点云很大,请尝试使用HelixToolkit.SharpDX版本。

也请在进行连续更新时尽量避免导出和导入。您可以将点云直接转换为helixtoolkit支持的点格式并更新点模型。