我在matlab中创建了10个点云,但每个云中有不同的点数。我想将它抽取到相同的点数。 matlab中是否有任何函数可以将点云重新采样/抽取到固定数量的点(例如:到1000点)?
我希望得到任何帮助和建议:)
答案 0 :(得分:1)
假设您的云点存储为矩阵,您将拥有10个矩阵,每个矩阵具有不同的行数(或者您可能只有一个存储矩阵的单元格)。 (我们称之为PointCloud1,PointCloud2 ...... PointCloud10)
如果你想随机取每个矩阵的1000个点(假设最小的矩阵至少有1000个点),我建议使用randperm生成索引的随机排列,然后取前1000个索引。
使用PointCloud1的示例:
[nrows, ncols] = size(PointCloud1);
idx = randperm(nrows);
sub_PC1 = PointCloud1(idx(1:1000),:);
此处sub_PC1
是1000个随机行PointCloud1
的子样本。