【问题标题】:Decrease the density of 3D point clouds降低 3D 点云的密度
【发布时间】:2017-11-19 10:51:48
【问题描述】:

我有一个XYZRGB 格式的点云数据。文件大小很大,它由数十万个点组成。如何降低点的密度?假设每 10 个邻居,我想要所有其他点(XYZ 和 RGB)的单点平均值。欢迎使用 Java 或 Matlab 中的任何代码。这是您可以处理的示例 .ply 点云文件:https://drive.google.com/open?id=0B667VfPLdu3_RVpKV1liZ0ktRVU

我在 Matlab 中尝试了一些插值,如下所示。但这不是我想要的。我需要降低密度。

% Load Point Cloud:
Point_Cloud  = importdata(‘Point_Cloud_1.txt')
x            = Point_Cloud(1,:)';
y            = Point_Cloud(2,:)';
z            = Point_Cloud(3,:)';

% Interpolate inspection points:
Density = 300;
[X,Y]   = meshgrid(linspace(min(x), max(x), Density), linspace(min(y), max(y), Density));
F       = scatteredInterpolant(x, y, z, 'natural','linear');
Z       = F(X,Y);
Int_PC  = [reshape(X,Density^2,1) reshape(Y,Density^2,1) reshape(Z,Density^2,1)];
Int_PC(any(isnan(Int_PC{i}),2),:) = [];  

% Plot results:
scatter3(x, y, z, 20, 'r', 'fill'); % Original data
hold on;
scatter3(Int_PC(:,1), Int_PC(:,2), Int_PC(:,3), 20, 'r', 'fill'); % Interpolated data

【问题讨论】:

  • @SardarUsama 我添加了一个示例文件。
  • @SardarUsama 抱歉,我尝试添加最相关的标签。糟糕,我只限 5 个。现在又回来了!

标签: java matlab point-cloud-library point-clouds meshlab


【解决方案1】:

VoxelGrid 过滤器将完成您正在寻找的内容。这提供了一些解释和示例代码: http://pointclouds.org/documentation/tutorials/voxel_grid.php

【讨论】:

猜你喜欢
  • 2016-07-11
  • 2020-01-21
  • 2015-12-13
  • 2016-12-21
  • 1970-01-01
  • 2022-08-06
  • 2022-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多