相机坐标到像素坐标opencv

camera coordinate to pixel coordinate opencv

我对opencv相机标定坐标转换很困惑。我使用示例代码来校准我的相机,我得到了这个结果:

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

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

你可以在OpenCV中找到documentation the different equations for the perspective projection model, also illustrated in the following pictures (thanks to this link).

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

x' = X/Z
y' = Y/Z

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

u = fx * x' + cx
v = fy * y' + cy

使用 fxfy 像素的焦距以及 cxcy 图像中主点的坐标。

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

数学上没有问题,只是你的点P对你的相机不可见。