2

我有一组大约 100 万个点的 3D 点。我希望用 matlab 将这些可视化。

我尝试了以下功能:

plot3
scatter3

但他们都非常迟钝。在matlab中有没有更有效的方法来可视化这个级别的点?也许是一种网格化点的方法?

如果没有,任何人都可以建议一个插件甚至一个不同的程序来可视化 3D 点吗?

4

5 回答 5

5

如果您希望所有百万以上的点都显示在绘图中,那么无论您使用什么插件/程序,您都会遇到效率问题。我的建议是下采样。每隔一个点或每个第 n 个点使用 plot3 或 scatter3 函数,直到得到一个不迟钝的图形。只要您的数据差异不是天文数字,稍微下采样就不会影响点的整体分布(假设您有一百万个以上的点)。并且任何能够显示这么多数据而又不迟钝的软件很可能下采样/分箱或使用一些插值技术来做到这一点(所以你也可以控制它)。

于 2013-01-24T04:11:43.207 回答
3

来自文件交换的fscatter3,做你喜欢的事。

于 2015-03-16T16:31:35.697 回答
2

是否有特定的理由让它显示那么多点?

我用谷歌搜索了一下,发现一些人遇到了类似的问题(有人建议将 Avizo 作为替代程序,但我从未使用过它):

如果您对数据的密度更感兴趣,另一种解决方案是生成直方图:

于 2013-01-24T04:22:00.860 回答
2

我事先知道您要查找的特征的大致坐标,尝试将云通过一个简单的直通过滤器,它基本上会裁剪您的点云。即,如果您知道该要素的 x 坐标 > 5,则删除所有 x 坐标 < 5 的点。

该过滤器可以首先协调实现为 data = data(data(1,:) > 5,:); 前提是您的 3d 数据存储在 n x 3 矩阵中。

这与下采样一起可以帮助您。如果您仍然发现性能滞后,请考虑使用 PointCloudLibrary 中的 PCD 查看器之类的东西,请在页面的中间查看 http://pointclouds.org/documentation/overview/visualization.php

这是一个可以从 matlab 启动的独立应用程序。我发现它的性能远远好于缓慢的 matlab 绘图工具。

于 2013-01-25T14:57:07.630 回答
1

对于任何感兴趣的人,我最终找到了一个名为 Cloud Compare 的点云可视化器。它非常快,允许选择和分割以及对点云进行过滤。

于 2013-03-05T05:25:40.330 回答