【问题标题】:Calculate camera matrix with KNOWN parameters (Python)?用已知参数(Python)计算相机矩阵?
【发布时间】:2020-01-09 14:28:13
【问题描述】:

OpenCV 提供了校准相机的方法。我想知道它是否还有一种方法可以在参数已知的情况下简单地生成视图投影矩阵。

即我知道相机位置、旋转、向上、FOV...以及其他任何需要的信息,然后调用MagicOpenCVCamera(parameters) 并获得一个4x4 变换矩阵。

我已经对此进行了搜索,但我只能找到有关校准相机的信息,如果您已经知道参数,则无法找到有关创建相机的信息。

【问题讨论】:

  • 为什么要这样做?我的猜测是,没有真正的物理相机是完美的,您也无法完美地测量这些东西。总会有一些误差,而“校准”可以让参数适合图像,想必就是你关心的数据
  • 因为我已经有了摄像头数据(预先由与opencv无关的不同进程估计),现在需要使用OpenCV进行一些计算,但我需要一个投影矩阵。跨度>
  • 你说的是哪个“投影矩阵”?你只是在寻找scratchapixel.com/lessons/3d-basic-rendering/… 之类的教程吗?

标签: python opencv camera computer-vision projection-matrix


【解决方案1】:

投影矩阵是一个简单的 3x4 矩阵,其 [0:3,0:3] 左方被相机固有校准矩阵 K 和它的 camera-from-world 旋转矩阵的乘积 K.dot(R) 占据R,最后一列是 K.dot(t),其中 t 是相机到世界的平移。需要说明的是,R是将在世界坐标中分解的向量带入摄像机坐标的矩阵,t是尾部在摄像机中心,尖端在世界原点的向量。

OpenCV 校准例程将相机方向生成为旋转向量,而不是矩阵,但您可以使用 cv.Rodrigues 对其进行转换。

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 2022-11-02
    • 2017-10-15
    • 1970-01-01
    • 2023-02-02
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    相关资源
    最近更新 更多