点云矩阵变换

转载:https://blog.csdn.net/weixin_42783619/article/details/116952488

  • 变换矩阵工作原理 :
|-------> 变换矩阵列
| 1 0 0 x | \
| 0 1 0 y | }-> 左边是一个3阶的单位阵(无旋转)
| 0 0 1 z | /
| 0 0 0 1 | -> 这一行用不到 (这一行保持 0,0,0,1)

要进行点云旋转,需要对3阶矩阵进行赋值
如何赋值参考:https://blog.csdn.net/weixin_39637723/article/details/111686018
pcl中使用参考:https://blog.csdn.net/weixin_38275649/article/details/80968364

  • 世界坐标系与相机坐标系转换

世界坐标系与相机坐标系转换是一样的,如下是X由世界坐标转换到相机坐标系,并由内参矩阵K变换到图像坐标(这里X是列向量)

内参矩阵K:

内参外参、世界坐标系与相机坐标系转换:https://blog.csdn.net/qq_33801763/article/details/77033064

  • 旋转变换实现

参考:https://blog.csdn.net/weixin_42783619/article/details/116478710

  • 变换矩阵(Translation Matrix)

如果我们需要表示一个3D空间的平移,那得需要一个4*4的矩阵。首先,我们预定义坐标向量都是列的形式,如果是行的形式,要先进行转置变换。

旋转平移矩阵的形式如下

其中Transform_XAxis是新坐标系下的x轴的方向,Transform_YAxis是新坐标系下的y轴的方向,其中Transform_ZAxis是新坐标系下的z轴的方向。Translation 描述了新空间相对于活动空间的位置

某些情况下,我们需要简单的变换,类似平移和旋转。

  • Translation 平移

     

     其中translation是一个3D的向量,代表我们想要移动空间的位置。

  • 尺度矩阵(Scale Matrix)

     

      这个比较好理解。scale是一个3D向量,表示每个轴的缩放尺度。

  • 旋转矩阵(Rotation Matrix)

       绕x轴旋转θ:

       

       绕y轴旋转:

       

      绕z轴旋转:

      

参考:https://52zju.cn/?p=580
其他参考:https://zhuanlan.zhihu.com/p/147282442
旋转矩阵变换的乘积顺序问题:https://blog.csdn.net/potato_uncle/article/details/110096514
两个旋转矩阵(Rotation Matrix)相乘(Multiply)的几何意义:https://dawnarc.com/2017/02/math两个旋转矩阵rotation-matrix相乘multiply的几何意义/
实现参考:https://www.learnopencv.com/rotation-matrix-to-euler-angles/
https://blog.csdn.net/reasonyuanrobot/article/details/89969676
https://blog.csdn.net/u011808673/article/details/93970439
————————————————
版权声明:本文为CSDN博主「BLACKVEIL」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42783619/article/details/116952488

posted on 2022-10-19 23:09  Sanny.Liu-CV&&ML  阅读(782)  评论(0)    收藏  举报

导航