从相机外参中获取translation、rotation并完成旋转矩阵转四元数——carla-ubuntu18.4

        在使用carla过程中有获取其相机内外参和从相机外参中获取translation、rotation并完成旋转矩阵转四元数的需求,记录一下过程。

        先上代码说明如何从相机外参中获取translation、rotation并完成旋转矩阵转四元数:

import numpy as np
from scipy.spatial.transform import Rotation as R

############         4*4的相机外参矩阵        ##########      
a=np.mat([[-6.81184744e-03 ,-9.99976814e-01,2.62450999e-06,1.09513466e+02],
         [ 9.99976695e-01,-6.81184791e-03,-5.41681657e-04,5.17240524e+01],
         [ 5.41686954e-04,-1.06540392e-06,9.99999881e-01,2.40255165e+00],
         [ 0.00000000e+00,0.00000000e+00,0.00000000e+00,1.00000000e+00]])

############         分离出translation和rotation        ##########    
a3=a[[0,1,2]]
a33=a3[:,[0,1,2]]
a34=[a[0,3],a[1,3],a[2,3]]
a33=list
print(a33) #rotation
print(a34) #translation

############         旋转矩阵rotation转四元数        ##########   
r = R.from_matrix(a33)
qua = r.as_quat()
print(qua)

知识拓展:什么是相机内外参?

        想理解内外参数,得先介绍几个坐标系,为什么是几个坐标系呢?以拍照为例,一个简单的拍照其实省略了很多坐标变换关系。为了方便研究,前人定义了世界坐标系,相机坐标系,图像坐标系,像素坐标系来剥离这些变换关系。

  1. 世界坐标系:xyz笛卡尔坐标系,“世界”顾名思义这个坐标系全局唯一,一切三维物体都以它作为坐标系。
  2. 相机坐标系:xyz笛卡尔坐标系,在世界坐标系下建立的,相当于抽象化的针孔相机模型,以主轴为Z轴,小孔所在平面为xoy面,全局不唯一,几台相机就有几个相机坐标系。
  3. 图像坐标系:xy笛卡尔坐标系,在相机坐标系下建立的,以主点为原点,在成像平面上定义的坐标系。主点是指针孔相机主轴与成像平面的交点。
  4. 像素坐标系:xy笛卡尔坐标系,与图像坐标系重合但原点不同,该坐标系原点通常位于左上角,之前的坐标系都以物理尺寸做为单位,而像素坐标系以像素为单位,它上面的点等同于图像上的像素。

外参数([R|t])描述世界坐标系与相机坐标系的变换关系,参数包括:旋转R,平移T。

内参数(K)描述相机坐标系,图像坐标系,像素坐标系之间的变换关系,参数包括主点坐标,焦距,单位像素宽与高。

稍微详细一点来说:

关于相机内外参的知识还有很多,以上也基本都是从其他地方转载抄录过来的,更多知识可以点击以下几个链接学习:

一文带你搞懂相机内参外参(Intrinsics & Extrinsics)

模型 16个相机参数(内参、外参、畸变参数)

多视图几何基础——深入理解相机内外参数

摄像机标定后 标定出的内外参数下一步该怎么用

 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值