在matlab中点云抽取

时间:2016-08-09 07:13:34

标签: matlab image-processing point mesh

我在matlab中创建了10个点云,但每个云中有不同的点数。我想将它抽取到相同的点数。 matlab中是否有任何函数可以将点云重新采样/抽取到固定数量的点(例如:到1000点)?

我希望得到任何帮助和建议:)

1 个答案:

答案 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的子样本。