使用matlab有效地可视化大量点。

时间:2013-01-24 03:55:03

标签: matlab visualization point-clouds

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

我尝试过以下功能:

plot3
scatter3

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

如果没有,任何人都可以建议使用插件甚至是不同的程序来显示3D点数吗?

5 个答案:

答案 0 :(得分:5)

如果您希望所有百万+积分都显示在情节中,无论您使用哪种插件/程序,都会遇到效率问题。我的建议是下采样。在每个其他点或每第n个点使用plot3或scatter3函数,直到得到一个不缓慢的数字。只要数据的方差不是天文数字,下采样一点不应影响点的整体分布(假设你有一百万+点)。任何 能够显示那么多数据而不会缓慢的软件很可能是下采样/分级或使用某种插值技术(所以你可以控制它)。

答案 1 :(得分:3)

来自文件交换的

fscatter3,做你喜欢的事。

答案 2 :(得分:2)

是否有特定的理由让它实际显示多个点?

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

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

答案 3 :(得分:2)

我事先大致知道您正在寻找的功能的坐标,尝试通过简单的直通过滤器传递云,这实际上是您的点云。即如果您知道该特征是在x坐标处> 5,删除所有带x坐标的点<&lt; 5。

这个过滤器可以为第一个协调实现     data = data(data(1,:)&gt; 5,:); 只要您的3d数据存储在n×3矩阵中。

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

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

答案 4 :(得分:1)

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