首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从深度图像和RGB图像生成点云?

如何从深度图像和RGB图像生成点云?
EN

Stack Overflow用户
提问于 2020-09-28 08:18:24
回答 1查看 405关注 0票数 0

如何从深度或rgb图像生成点云?

示例:

我需要从深度或rgb图像生成一个点云,但我找不到代码。

我设法在3js中找到了一个,但我不能导出它,如果我可以通过深度和rgb图像生成一个点云,有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-28 16:20:01

你可以看看PCL库是如何做到这一点的,using the OpenNI 2 grabber module:这个模块负责处理来自OpenNI兼容设备(例如Kinect)的RGB/深度图像。另一个例子是depth2cloud from ROS。让我们集中在前面的例子中。

首先,它获取intrinsic camera parameters。这通常是通过校准脱机完成的,或者您可能已经知道相机的参数。

代码语言:javascript
复制
  float constant_x = 1.0f / device_->getDepthFocalLength ();
  float constant_y = 1.0f / device_->getDepthFocalLength ();
  float centerX = ((float)cloud->width - 1.f) / 2.f;
  float centerY = ((float)cloud->height - 1.f) / 2.f;

然后,在一系列有效性检查和创建适当大小的缓冲区之后,对每个点执行sets the 3d coordinates

代码语言:javascript
复制
  pt.z = depth_map[depth_idx] * 0.001f;
  pt.x = (static_cast<float> (u) - centerX) * pt.z * constant_x;
  pt.y = (static_cast<float> (v) - centerY) * pt.z * constant_y;

正如您从原始代码中看到的,它遍历深度图像的所有像素,然后使用相机参数将它们投影到3d空间中。

类似的推理也适用于convertToXYZRGBPointCloud函数,该函数还负责在点上设置正确的RGB颜色值。

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

https://stackoverflow.com/questions/64094463

复制
相关文章

相似问题

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