gpt4 book ai didi

opencv - OpenCv StereoRectify 中矩阵的精确定义

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:04 27 4
gpt4 key购买 nike

通常投影矩阵的定义 P 是将点从世界坐标投影到图像/像素坐标的 3x4 矩阵。投影矩阵可以拆分为:

  • K:具有内在参数的 3x4 相机矩阵 K
  • T:具有外部参数的 4x4 变换矩阵

那么投影矩阵就是P = K * T

OpenCV 的 stereoRectify 的以下输入的明确定义是什么:

  • cameraMatrix1 – 第一个相机矩阵(我假设它是投影矩阵的固有 K 部分,对吗?)
  • R – 第一和第二相机坐标系之间的旋转矩阵。 (“between”是什么意思?是从 cam1 到 cam2 还是从 cam2 到 cam1 的旋转?)
  • T – 相机坐标系之间的平移矢量。 (同上。是cam1->cam2还是cam2->cam1的翻译)
  • R1 – 为第一台摄像机输出 3x3 校正变换(旋转矩阵)。 (这是校正后的旋转,所以投影矩阵的新外在部分变成了T1new = R1*T1old?)
  • P1 – 在第一台摄像机的新(修正)坐标系中输出 3x4 投影矩阵。 ('新坐标系中的投影矩阵'是什么意思?这个投影矩阵似乎依赖于旋转矩阵R1将点从世界坐标投影到图像/像素坐标,所以从上面的定义来看它是既不是“投影矩阵”也不是“相机矩阵”,而是两者的某种混合)

最佳答案

  1. CAMERAMATRIX1 - 是内部 K 矩阵,由 opencv 中的 stereocalibrate() 函数计算。你没看错!!!
  2. R 是 cam2 坐标系 w.r.t cam1 坐标系的旋转矩阵。类似地,T 是 cam2 原点 w.r.t 的平移向量cam1 起源。
  3. 如果您阅读 O'Riley 的书“LEARNING OPENCV”pg.-434,您将了解什么是R1(/Rl) 和 R2(/Rr) 是。

    Rl=[Rrect][rl]; Rr=[Rect][rr];

    让相机的图片平面为 plane1 和 plane2。在没有做立体矫正的情况下,plane1和plane2根本不平行。此外,外线不会与立体相机基线平行。因此,Rl 所做的是将左图像平面变换为与右图像平面(由 Rr 变换)平行,并且两个图像上的外延线现在平行。
  4. P1P2是立体校正后的新投影矩阵。请记住,相机矩阵 (K) 将 3d 空间中的点转换为 2d 图像平面。但是 P1 和 P2 变换 3d 空间中的一个点到校正后的 2d 图像平面上。
    如果您之前校准过立体相机装备并观察 P1 和 K1 值,如果您的立体装备几乎处于校正配置(显然在人类范围内),您会发现它们非常相似

关于opencv - OpenCv StereoRectify 中矩阵的精确定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28678985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com