首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用预测深度生成三维点云

利用预测深度生成三维点云
EN

Stack Overflow用户
提问于 2020-06-29 11:55:28
回答 1查看 75关注 0票数 0

我试图从预测深度的图像中生成3D点云(PC)。给出了摄像机的本质和地面真实深度图像。首先,我正在用摄像机内部的GT深度生成一台PC,它看起来如下:

但是,当我试图生成与预测深度相同的图像的PC时,PC看起来很奇怪。下面是预测深度的PC:

我用同样的相机本质来做这件事。我正在使用相同的代码和程序的两个PC代。我原以为两台PC会很接近,但我得到的是真的很奇怪。我做错了什么?

我生成点云的代码如下所示:

代码语言:javascript
复制
int rows = RGB.size[0];
int cols = RGB.size[1];
for (int v = 0; v < rows; v++) {
    for (int u = 0; u < cols; u++) {
        auto z = depth.at<ushort>(v, u) / 5000;
        auto x = (u - intrinsics.cx) * z / intrinsics.fx;
        auto y = (v - intrinsics.cy) * z / intrinsics.fy; 

        // std::cout<<"x = "<< x << " y = " << y <<std::endl;
        point3d << x, y, z;
        pc.vertices.push_back(point3d);
        pc.colors.push_back(RGB.at<cv::Vec3b>(v, u));

    }
}

GT深度图像:

预测的深度图像:

编辑:我发现了错误。深度值被缩放了5000。所以,我忽略了这个部分,在构造点云时没有对z的值进行分割。除以5000后,问题解决了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-04 17:26:21

在构建3D场景时,深度值应该被除以5000,因为深度值最初被缩放为5000。

有关详细信息,如何构造三维点云的相机本质和指南

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

https://stackoverflow.com/questions/62637574

复制
相关文章

相似问题

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