You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Open3D从RGBD图像生成点云:坐标系疑问及方法验证

问题解答

生成的点云坐标系

默认情况下,o3d.geometry.PointCloud.create_from_rgbd_image生成的是相机坐标系下的点云。当传入extrinsic参数时,该参数是一个4x4变换矩阵,作用是将相机坐标系下的点转换到目标坐标系(即输出点 = extrinsic × 相机坐标系点,齐次坐标乘法)。

当前方法是否正确?

不正确。你传入的W2C是世界坐标系到相机坐标系的变换矩阵,但函数要求extrinsic是相机坐标系到世界坐标系的变换矩阵(也就是W2C的逆矩阵,通常记为C2W)。

如果继续使用W2C作为extrinsic,生成的点云并非世界坐标系下的结果。要得到世界坐标系的点云,需要将extrinsic替换为W2C的逆矩阵,示例代码如下:

import numpy as np

# 计算相机到世界的变换矩阵(W2C的逆)
C2W = np.linalg.inv(W2C)

pcd_tmp = o3d.geometry.PointCloud.create_from_rgbd_image(
            rgbd,
            o3d.camera.PinholeCameraIntrinsic(
                cam.image_width,
                cam.image_height,
                cam.fx,
                cam.fy,
                cam.cx,
                cam.cy,
            ),
            extrinsic=C2W,
            project_valid_depth_only=True,
        )

内容的提问来源于stack exchange,提问作者Muhammad Awais

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:22:09