相机内外参知识

已知相机的内外参数矩阵,可以求得相机在世界坐标系下的原点坐标。这里需要理解几个概念:

  1. 内参数矩阵(Intrinsic Matrix): 描述相机本身的属性,比如焦距、主点位置等。
  2. 外参数矩阵(Extrinsic Matrix): 描述相机相对于世界坐标系的位置和姿态。

外参数矩阵通常由旋转矩阵 R R R和平移向量 t t t组成,它们一起描述了从世界坐标系到相机坐标系的转换。如果要计算相机原点在世界坐标系中的位置,则需要考虑这个变换的逆变换,即从相机坐标系到世界坐标系的变换。

设 R R R为 3x3 的旋转矩阵, t t t为 3x1 的平移向量,那么外参数矩阵 [ R ∣ t ] [R | t] [R∣t]描述了世界坐标系中的一点 X w X_w Xw如何通过旋转和平移到相机坐标系中对应的点 P c P_c Pc,可以用以下公式表示:

X c = R ⋅ X w + t X_c = R \cdot X_w + t Xc=R⋅Xw+t

对于相机坐标系的原点 O c O_c Oc,其在相机坐标系中的坐标是 ( 0 , 0 , 0 ) T (0, 0, 0)^T (0,0,0)T。为了找到这个点在世界坐标系中的坐标 O w O_w Ow,我们需要做逆变换。由于 O c O_c Oc在相机坐标系中是原点,所以我们可以简单地使用负的平移向量 − R T ⋅ t -R^T \cdot t −RT⋅t来得到它在世界坐标系中的坐标,因为旋转矩阵的转置等于它的逆( R T = R − 1 R^T = R^{-1} RT=R−1,前提是 R R R是正交矩阵),所以我们有:

O w = − R T ⋅ t O_w = -R^T \cdot t Ow=−RT⋅t

这就是相机原点在世界坐标系下的坐标。如果你有具体的 R R R和 t t t值,可以直接代入上述公式进行计算。

如果文档或代码中没有明确指出,那么默认情况下外参数矩阵指的通常是 world2cam 变换。

齐次坐标系:
X c = [ R ∣ T ] X w X_c = [R|T]X_w Xc=[R∣T]Xw,这里的 [ R ∣ T ] [R|T] [R∣T]表示的就是world2cam,也就是外参矩阵。此时相机原点在世界坐标系下坐标是 O w = − R T ⋅ T O_w = -R^T \cdot T Ow=−RT⋅T
X w = [ R ∣ T ] X c X_w = [R|T]X_c Xw=[R∣T]Xc,这里的 [ R ∣ T ] [R|T] [R∣T]表示的是cam2world,此时相机原点在世界坐标系下坐标是 T [ 0 ] , T [ 1 ] , T [ 2 ] T[0],T[1],T[2] T[0],T[1],T[2]

相关推荐
Hello-FPGA1 天前
8路CXP相机采集系统介绍
数码相机
云钥科技1 天前
云钥科技多通道工业相机解决方案设计
数码相机
EAI-Robotics2 天前
机器人的手眼标定——机器人抓取系统基础系列(五)
数码相机·机器人
康谋自动驾驶2 天前
多模态自动驾驶混合渲染HRMAD:将NeRF和3DGS进行感知验证和端到端AD测试
数码相机·3d·自动驾驶
ueotek2 天前
Ansys Zemax | 联合Speos实现供应商与OEM交换黑盒光学系统
数码相机
神仙别闹3 天前
基于 C语言 surf 特征点的低重叠度图像拼接
c语言·数码相机·计算机视觉
中达瑞和-高光谱·多光谱3 天前
凝视型高光谱相机:钻石光谱分析研究与应用
人工智能·数码相机
你好,明天,,3 天前
OpenCV三维解算常用方法C++
c++·数码相机·opencv
YoYo20133 天前
关于opencv::triangulatePoints()函数的注意事项
人工智能·数码相机·opencv
RZer4 天前
应用权限组列表
数码相机·harmonyos