我有一个有组织的点云(1280 * 720)从一个3D相机拍摄。我只是想知道是否有一种方法来调整(减少)这个点云的大小。128 * 72),当保持这个云的组织。(我认为这不应该和下采样一样。“调整大小”的意思是放大图像)。
我使用的是1.8.0,但是我坚持这样做。
欢迎任何建议,首先谢谢!
发布于 2017-02-28 13:05:03
只需从你想要减少云的时间中找出一点,就像这样大声地说:
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。
希望这能帮到你!
发布于 2017-10-18 11:15:44
不能发表评论,但是默认情况下,从点云中删除Can会使其变得无组织。如果你的仪器不能观察到矩阵中的一个点只是为了保持矩阵尺寸的正确,那么NaNs很可能是作为虚拟点存在的。除去这些破坏矩阵结构,你将有一个与1280 * 720矩阵所期望的不同数量的点数。
如果你想降低一个有组织的点云的样本,比如说2,你可以尝试这样的方法
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));
}
}按照你的意愿改变比例。
该方法只对原始点云进行采样,不会在现有点之间进行插值。用十进制因子进行缩放比较棘手,如果曲面不连续,可能会产生不必要的结果。
https://stackoverflow.com/questions/42418082
复制相似问题