显示点云连续 c# Intel Realsense

Posted

技术标签:

【中文标题】显示点云连续 c# Intel Realsense【英文标题】:Display point cloud continuous c# Intel Realsense 【发布时间】:2020-10-08 07:56:40 【问题描述】:

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

// 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);

ply 文件是用以下行制作的:

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

helix 工具包是这样使用的:

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

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

【问题讨论】:

在这种情况下,“连续”是什么意思?点云只是不同点的集合。您是否希望从点云重建表面?即从中创建一个网格? 【参考方案1】:

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

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

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

【讨论】:

我尝试将我的点云转换为 helixtoolkit 支持的点,但 helixtoolkit 支持的唯一点是 PointsVisual3D。我忽略了什么吗?

以上是关于显示点云连续 c# Intel Realsense的主要内容,如果未能解决你的问题,请参考以下文章

使用 Intel RealSense D435 点云制作 3D 扫描模型

从 intel realsense 到 matlab 的 RGBa 图像

使用 Intel Realsense D415 进行物体识别

Intel Realsense D435 C/C++调用code examples(附代码)(坑坑坑坑坑!!!)(opencv显示图片反色解决)

Intel Realsense D435 C/C++调用code examples(附代码)(坑坑坑坑坑!!!)(opencv显示图片反色解决)

从 realsense API 或 Open3D 库可视化点云