我有一个深度图像的点云,它是用相机在水平上方 30 度(在 z 轴上旋转 30 度)拍摄的。我想将所有点转换回它们的位置,就好像相机处于 0 度一样,我相信我可以使用以下旋转矩阵来做到这一点:
|cos(30) -sin(30) 0|
|sin(30) cos30 0|
|0 0 1|
但是,当查看转换点云的 pcl 方法时,我发现了这一点:
pcl::transformPointCloud (const PointCloud< PointT > &cloud_in,
PointCloud< PointT > &cloud_out, const Eigen::Matrix< Scalar, 4, 4 > &transform)
但是为什么它是一个 4x4 矩阵而不是上面的 3x3 旋转矩阵呢?
原文由 Aly 发布,翻译遵循 CC BY-SA 4.0 许可协议
在这个例子中,我们将点 (x,y,z) 移动到点 (x+a, y+b, z+c)。这只能使用 4 x 4 矩阵来完成。
这将为您提供一个点的旋转和平移。