我对在相机矩阵中添加主点偏移的目的有点困惑。这些方程来自OpenCV Docs .
除了添加 c_x
和 c_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/