opencv 相机坐标到像素坐标

Joh*_*lin 2 opencv camera-calibration

我对 opencv 相机校准坐标转换感到困惑。我使用示例代码来校准我的相机,得到以下结果:

在此输入图像描述

当我用这个相机矩阵乘以相机坐标系中的一个点时,比如P = [50, 50, 1.35],输出结果太大,不可能是像素坐标。这是怎么回事?我错过了什么?

图像为1920 x 1080。这是棋盘配置文件信息:

在此输入图像描述

Cat*_*ree 5

您可以在 OpenCV文档中找到透视投影模型的不同方程,如下图所示(感谢此链接)。

相机型号

P=(X,Y,Z)假设相机坐标系中的一点Fc,其在归一化相机坐标系中的坐标为:

x' = X/Z
y' = Y/Z
Run Code Online (Sandbox Code Playgroud)

及其在图像平面上的投影(假设没有失真):

u = fx * x' + cx
v = fy * y' + cy
Run Code Online (Sandbox Code Playgroud)

其中fxfy是以像素为单位的焦距cxcy是图像中主点的坐标。

在您的情况下,您的 Z 距相机的距离为 1.35,但其他 2 个坐标与 Z 坐标相比太远。

数学上没有问题,只是你的相机看不到你的点P。