【发布时间】:2015-03-04 02:56:23
【问题描述】:
我想用颜色绘制一个 3D 数据集。也就是说,每个点都有一个关联的 rgb 颜色。当我使用scatter3 执行此任务时,绘图过程非常缓慢。我已经搜索了替代选项,并从 FileExchange 中找到了 plot3k 函数:
然而,这个函数只能通过索引引用一些颜色图来绘制每个点的颜色,而不是直接获取 rgb 值。此外,它反复使用plot3 进行绘图,当颜色图太大时也会变得非常慢。
所以,我想知道:
是否有降低颜色数量的功能?即,我将 N x 3 RGB 数组传递给函数,函数返回索引和新数组 A,其中 size(A,1) < N 和 A(indices,:) 是新的近似颜色。
【问题讨论】:
-
你确定缓慢与颜色有关,而不仅仅是点数?您能否提供一些示例代码,您是如何使用
scatter3做到这一点的? -
我很确定,运行时与 plot3k 中的颜色数量有关。但是,在 scatter3 中,点数是重要因素。也许有一个混乱?要为点云“pcl”运行 scatter3,其中前三列是 x、y、z,第 4 到 6 列是 RGB,我使用了: scatter3(pcl(:,1), pcl(:,2), pcl(:, 3), 4, pcl(:,4:6)
-
好的,我可以确认。对于 100,000 个点,如果每个点具有不同的颜色,则 scatter3 需要 20.7 秒,如果它们都具有相同的颜色,则需要 1.29 秒。奇怪...
标签: matlab plot matlab-figure