python - 从深度图像生成点云
问题描述
我正在尝试将深度图像 (RGBD) 转换为 3d 点云。我目前使用的解决方案取自这篇文章,其中:
cx
= 图像中心高度cy
= 图像中心宽度fx
和fy
=250
,通过迭代几个选项来选择
深度测量是从针孔相机中进行的,点云从中心突出(下面的示例图像)。谁能帮我理解为什么以及如何解决这个问题?
解决方案
您可以使用 package.json 轻松解决此问题open3d
。使用安装它sudo pip install -U open3d-python
(不仅仅是open3d
- 那是另一个包)。
安装后:
from open3d import *
rgbd = create_rgbd_image_from_color_and_depth(color, depth, convert_rgb_to_intensity = False)
pcd = create_point_cloud_from_rgbd_image(rgbd, pinhole_camera_intrinsic)
# flip the orientation, so it looks upright, not upside-down
pcd.transform([[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]])
draw_geometries([pcd]) # visualize the point cloud
上面的代码假设您有彩色图像color
和深度图像depth
,请查看随附的示例以open3d
获取更多信息。
如果你有自己的相机,你可以pinhole_camera_intrinsic
用那些来代替,但是对于测试运行,针孔相机或多或少都可以正常工作。
推荐阅读
- java - Google Fit 查询手动启动的活动
- package - julia - 如何修复未知包错误?
- ajax - Laravel 基本 AJAX 请求不起作用?
- javascript - MongoDB mongoose 弃用警告
- excel - Excel VBA用户表单在服务器上使用用户名和密码登录
- php - 在 Yii2 中更新作曲家时,系统中缺少请求的 PHP 扩展 ext-soap *
- javascript - Promise.all 和 for-await-of 的表现
- javascript - setTimeout 计时精度
- scala - 涉及高阶函数、类型参数和返回类型的scala语法解释
- javascript - Redux 商店未注册该状态已更改