Python 将图像中的二维点(带透视)转换为三维世界坐标

Python 将图像中的二维点(带透视)转换为三维世界坐标,python,opencv,transformation,projection-matrix,Python,Opencv,Transformation,Projection Matrix,我想把一个给定的像素点P1(u,v)转换成一个三维世界坐标(x,y),问题是这个平面没有与相机镜头垂直对齐,这就带来了透视问题 我已经校准了我的相机,并检索了外部和内部参数,此外,我还知道相机安装的高度 如果平面与相机镜头垂直对齐,我只需使用针孔相机模型检索x,y坐标: X = Z / fx * (u - cx) Y = Z / fy * (v - cy) [Z = D] 但是因为我已经安装了一个与飞机成一定角度的相机,这就不再是真的了。那么,用给定的信息可以用什么方法来解决问题呢?我在这里找

我想把一个给定的像素点P1(u,v)转换成一个三维世界坐标(x,y),问题是这个平面没有与相机镜头垂直对齐,这就带来了透视问题

我已经校准了我的相机,并检索了外部和内部参数,此外,我还知道相机安装的高度

如果平面与相机镜头垂直对齐,我只需使用针孔相机模型检索x,y坐标:

X = Z / fx * (u - cx)
Y = Z / fy * (v - cy)
[Z = D]

但是因为我已经安装了一个与飞机成一定角度的相机,这就不再是真的了。那么,用给定的信息可以用什么方法来解决问题呢?

我在这里找到了答案的解决方案:

我还成功地用这里提到的方法解决了这个问题: