【发布时间】:2015-03-17 00:31:35
【问题描述】:
我有一组大约 100 万个点的 3D 点。我希望用 matlab 将这些可视化。
我尝试了以下功能:
plot3
scatter3
但他们都非常迟钝。在matlab中有没有更有效的方法来可视化这个级别的点?也许是一种网格化点的方法?
如果没有,任何人都可以建议使用插件甚至其他程序来可视化 3D 点吗?
【问题讨论】:
标签: matlab visualization point-clouds
我有一组大约 100 万个点的 3D 点。我希望用 matlab 将这些可视化。
我尝试了以下功能:
plot3
scatter3
但他们都非常迟钝。在matlab中有没有更有效的方法来可视化这个级别的点?也许是一种网格化点的方法?
如果没有,任何人都可以建议使用插件甚至其他程序来可视化 3D 点吗?
【问题讨论】:
标签: matlab visualization point-clouds
如果您希望所有百万以上的点都显示在一个情节中,那么无论您使用什么插件/程序,您都会遇到效率问题。我的建议是下采样。每隔一个点或每个第 n 个点使用 plot3 或 scatter3 函数,直到你得到一个不迟钝的图形。只要您的数据差异不是天文数字,稍微下采样就不会影响点的整体分布(假设您有一百万个以上的点)。任何 能够显示这么多数据而又不迟钝的软件很可能会进行下采样/分箱或使用某种插值技术来做到这一点(因此您不妨对其进行控制)。
【讨论】:
fscatter3 来自文件交换,随心所欲。
【讨论】:
是否有特定的理由让它实际显示这么多点?
我在 Google 上搜索了一下,发现一些人遇到了类似的问题(有人建议将 Avizo 作为替代程序,但我从未使用过):
如果您对数据的密度更感兴趣,另一种解决方案是生成直方图:
【讨论】:
您事先知道您要查找的要素的大致坐标,请尝试将云通过一个简单的直通过滤器,该过滤器基本上会裁剪您的点云。 IE。如果您知道该要素的 x 坐标 > 5,则删除所有 x 坐标
这个过滤器对于第一个协调的可以实现为 数据=数据(数据(1,:)> 5,:); 前提是您的 3d 数据存储在 n x 3 矩阵中。
这与下采样一起可以帮助您。如果您仍然发现性能滞后,请考虑使用 PointCloudLibrary 中的 PCD 查看器之类的东西,检查页面的一半 http://pointclouds.org/documentation/overview/visualization.php
这是一个可以从 matlab 启动的独立应用程序。我发现它的性能远远优于缓慢的 matlab 绘图工具。
【讨论】:
对于任何感兴趣的人,我最终找到了一个名为 Cloud Compare 的点云可视化器。它非常快,允许选择和分割以及对点云进行过滤。
【讨论】: