图例说明 (可拖拽)
原始 3D 点云
Depth 相机 (红)
RGB 相机 (蓝)
着色后的点云
RGB 相机采集结果预览
3D 相机点云与彩色相机对齐及着色过程
背景:在 3D 扫描中,深度相机(Depth Camera)负责获取物体的三维点云数据,而彩色相机(RGB Camera)负责获取物体的纹理和颜色。由于两个相机的物理位置不同,视角也不同,我们需要通过数学变换将它们对齐。
思路梳理
1. RGB 相机得到 2D 图像;Depth 相机得到深度数据,并转成点云。
2. 把点云从 Depth 相机坐标系,变换到 RGB 相机坐标系。
3. 在 RGB 相机坐标系里,把 3D 点投影到 RGB 图像上取颜色,再把颜色写回点云。
步骤 0: 初始状态 (数据获取)
RGB 相机负责获取 2D 图像,Depth 相机负责获取深度数据。
深度数据会进一步转换成 3D 点云,初始位于 Depth 相机(红色模型)的坐标系中。
步骤 1: 外参变换 (Extrinsic Transformation)
因为两台相机的位置和朝向不同,所以要先把点云从 Depth 相机坐标系变换到 RGB 相机坐标系。
这一步使用两台相机之间的外参,也就是旋转矩阵 R 和平移向量 T:
P_color = R · P_depth + T
画面里看起来像是点云被搬到了蓝色相机这边,本质上是在做坐标系转换。
步骤 2: 着色 (Color Sampling)
点云到了 RGB 相机坐标系后,就可以直接用 RGB 相机的投影模型算出每个点对应的像素位置。
[u, v, 1]^T = (1 / Z_color) · K · P_color
根据像素坐标 (u, v) 去 RGB 图像取颜色,再把颜色写回 3D 点,白色点云就会变成彩色点云。