首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在点云数据中有8个点。如何重建点以形成点云数据的立方体?

我在点云数据中有8个点。如何重建点以形成点云数据的立方体?
EN

Stack Overflow用户
提问于 2016-05-08 09:18:55
回答 1查看 166关注 0票数 0

给定8个角点,我想重建它们并填充充满点云数据的立方体。使用点云库时,如何执行此操作?

EN

回答 1

Stack Overflow用户

发布于 2016-05-12 06:01:30

我有以下内容,它很长,只是构建了立方体的表面,一些调整,你会得到你想要的:

代码语言:javascript
复制
struct Dimensions // min and max points of cube 
{
float min_x, min_y, min_z, max_x, max_y, max_z;
}

PointCloudColoredPtr draw_box(Dimensions& dim, uint32_t rgb)
{
float step = 0.4;
PointCloudColoredPtr box(new PointCloudColored);
PointTColored point_min, point_max;
point_min.rgb = *reinterpret_cast<float*>(&rgb);
point_max.rgb = *reinterpret_cast<float*>(&rgb);

// add points according to X
point_min.x = dim.min_x;
point_max.x = dim.max_x;

float b1, b2;
for (b1 = dim.min_y; b1 < dim.max_y; b1 += step)
{
    for (b2 = dim.min_z; b2 < dim.max_z; b2 += step)
    {
        point_min.y = b1;   point_max.y = b1;
        point_min.z = b2;   point_max.z = b2;
        box->points.push_back(point_min);
        box->points.push_back(point_max);
    }
}

// add points according to Y
point_min.y = dim.min_y;
point_max.y = dim.max_y;

for (b1 = dim.min_x; b1 < dim.max_x; b1 += step)
{
    for (b2 = dim.min_z; b2 < dim.max_z; b2 += step)
    {
        point_min.x = b1;   point_max.x = b1;
        point_min.z = b2;   point_max.z = b2;
        box->points.push_back(point_min);
        box->points.push_back(point_max);
    }
}

// add points according to Z
point_min.z = dim.min_z;
point_max.z = dim.max_z;

for (b1 = dim.min_x; b1 < dim.max_x; b1 += step)
{
    for (b2 = dim.min_y; b2 < dim.max_y; b2 += step)
    {
        point_min.x = b1;   point_max.x = b1;
        point_min.y = b2;   point_max.y = b2;
        box->points.push_back(point_min);
        box->points.push_back(point_max);
    }
}

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

https://stackoverflow.com/questions/37095279

复制
相关文章

相似问题

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