首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重组点云

重组点云
EN

Stack Overflow用户
提问于 2017-02-23 14:08:49
回答 2查看 1.6K关注 0票数 1

我有一个有组织的点云(1280 * 720)从一个3D相机拍摄。我只是想知道是否有一种方法来调整(减少)这个点云的大小。128 * 72),当保持这个云的组织。(我认为这不应该和下采样一样。“调整大小”的意思是放大图像)。

我使用的是1.8.0,但是我坚持这样做。

欢迎任何建议,首先谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-28 13:05:03

只需从你想要减少云的时间中找出一点,就像这样大声地说:

代码语言:javascript
复制
for (pcl::PointCloud<pcl::PointXYZ>::const_iterator it = src->begin(); it< src->end(); it+=times)
{
  dest.points.push_back(*it);
}

唯一的问题是云可能包含一些NaN值。要更正它,只需将is_dense设置为false,然后调用removeNaNFromPointCloud。

希望这能帮到你!

票数 1
EN

Stack Overflow用户

发布于 2017-10-18 11:15:44

不能发表评论,但是默认情况下,从点云中删除Can会使其变得无组织。如果你的仪器不能观察到矩阵中的一个点只是为了保持矩阵尺寸的正确,那么NaNs很可能是作为虚拟点存在的。除去这些破坏矩阵结构,你将有一个与1280 * 720矩阵所期望的不同数量的点数。

如果你想降低一个有组织的点云的样本,比如说2,你可以尝试这样的方法

代码语言:javascript
复制
int scale = 2;
pcl::PointCloud<pcl::your_point_type> down_sampled_cloud; 
down_sampled_cloud.width = original_cloud.width / scale;
down_sampled_cloud.height = original_cloud.height / scale;

for( int ii = 0; ii < original_cloud.height; ii+=scale){
    for( int jj = 0; jj < original_cloud.width; jj+=scale ){
    down_sampled_cloud.push_back(original_cloud.at(ii,jj));

    }
}

按照你的意愿改变比例。

该方法只对原始点云进行采样,不会在现有点之间进行插值。用十进制因子进行缩放比较棘手,如果曲面不连续,可能会产生不必要的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42418082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档