opencv - 相机投影矩阵主点

标签 opencv graphics 3d computer-vision camera-calibration

我对在相机矩阵中添加主点偏移的目的有点困惑。这些方程来自OpenCV Docs .

enter image description here

enter image description here

enter image description here

除了添加 c_xc_y 之外,我了解所有这些。我读到,我们这样做是为了移动投影点的原点,使其相对于图像的左上角 (0, 0)。但是,我不知道如何添加图像中心(主点)的坐标来实现这一点。我认为这是简单的几何图形,但我很难理解。

最佳答案

看看你问题中的图表。 x/y 坐标系的原点位于图像中心附近的某处。即,可能存在负坐标。 u/v 坐标系的原点位于左上角,即不能有负坐标。出于这个问题的目的,我将考虑 x/y 坐标系已使用 fx, fy 进行缩放。 ,即(x, y) = (fx * x', fy * y') .

您想要做的是将坐标从 x/y 坐标系转换为 u/v 坐标系。让我们看几个例子:

  • x/y 原点 (0, 0)将映射到(cx, cy)在u/v中。
  • 左上角(即 u/v 中的 (0, 0))的坐标为 (-cx, -cy)在 x/y 中。

你还可以举出更多的例子。它们的共同点是(u, v) = (x, y) + (fx, fy) 。这就是方程中所述的变换。

关于opencv - 相机投影矩阵主点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50421178/

相关文章:

c# - Eigen 点到平面算法,返回四元数?

opencv - 确定 OpenCV 中像素的平均距离(到图像的中心)

c++ - opencv stereobm,真的是基于SAD代价函数吗

opengl - 为什么剪裁应该在 CCS 中完成,而不是 NDCS

python - 在一个子像素位置将一个图像补丁插入另一个图像

3d - 为什么立方体贴图的面标记为 px、nx、py、ny、pz、nz?

opencv - 如何使用USB从多个DSLR相机捕获图像?

android - 连接来自 Canny 算法的线

c# - 在 C# win Form 中创建维恩图

javascript - ThreeJs 中的门户