欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 点云下采样有损压缩

点云下采样有损压缩

2024/10/24 13:18:01 来源:https://blog.csdn.net/qq_45764251/article/details/140309777  浏览:    关键词:点云下采样有损压缩

转自本人博客:点云下采样有损压缩

点云下采样是通过一定规则对原点云数据进行再采样,减少点云个数,降低点云稀疏程度,减小点云数据大小。

1. 体素下采样(Voxel Down Sample)

std::shared_ptr<PointCloud> VoxelDownSample (double voxel_size) const;

voxel_size为体素(体积元素)的尺寸大小,体素的尺寸越大,下采样的倍数越大,点云也就越稀疏。

相当于每隔一定的距离采集一个点。

示例:

std::shared_ptr<open3d::geometry::PointCloud> pcd = nullptr;
open3d::io::ReadPointCloud("rabbit.pcd", *pcd);
double voxelSize = 0.05;
pcd = pcd->VoxelDownSample(voxelSize);

2. 均匀下采样(Uniform Down Sample)

std::shared_ptr<PointCloud> UniformDownSample (size_t every_k_points) const;

every_k_points为隔着的点数目,每隔every_k_points个点,保留一个点。

示例:

std::shared_ptr<open3d::geometry::PointCloud> pcd = nullptr;
open3d::io::ReadPointCloud("rabbit.pcd", *pcd);
size_t everyKPoints = 10;
pcd = pcd->UniformDownSample(everyKPoints);

3. 随机下采样(Random Down Sample)

std::shared_ptr<PointCloud> RandomDownSample (double sampling_ratio) const;

sampling_ratio为采样的比率,随机保留点,直至达成指定比率。

示例:

std::shared_ptr<open3d::geometry::PointCloud> pcd = nullptr;
open3d::io::ReadPointCloud("rabbit.pcd", *pcd);
double samplingRatio = 0.2;
pcd = pcd->RandomDownSample(samplingRatio);

4. 最远点下采样(FarthestPoint Down Sample)

std::shared_ptr<PointCloud> FarthestPointDownSample (size_t num_samples) const;

num_samples为采样的点数。

首先随机选择一个点,其次,在剩下点中寻找最远的点,再去再剩下点中找到同时离这两个点最远的点……,以此类推,直到满足采样点个数。

示例:

std::shared_ptr<open3d::geometry::PointCloud> pcd = nullptr;
open3d::io::ReadPointCloud("rabbit.pcd", *pcd);
size_t numSamples = 1000;
pcd = pcd->FarthestPointDownSample(numSamples);