虽然网上已经有很多个理想针孔相机模型的版本,但还是想自己写一个,聊聊自己对它的理解。
像素坐标系UV和图像坐标系XY首先是像素坐标系UV和图像坐标系XY之间的关系。在拿到一张照片之后,我们应该可以想到,这其实是一张由一个一个像素组成的图像,并且我们可以很简单地拿到像素的坐标,也即
. 但这个坐标只是图像上用来指示像素的位置,并不是物理的成像平面上的坐标,因此不能直接用于三维坐标的恢复。这个时候我们需要先去恢复图像坐标
,也即物理的成像平面上的坐标。从图像坐标系到像素坐标系的转换关系是
其中
是成像平面中心,也即图像坐标系的原点在像素坐标系当中的坐标。
分别表示物理像素在两个坐标轴方向上的长度。因此
表示的是在成像平面上该点在
方向上占多少个像素。由于原点
并不是与像素坐标系的原点对齐的,所以需要加上这个偏移,来得到像素坐标。上式写成矩阵形式为
其逆为
图像坐标系和相机坐标系然后是题图中的图像坐标系XY与相机坐标系
之间的转换关系。如图所示,相机坐标系中的三维点
与相机中心
的连线与成像平面相交于一点
,我们可以利用他们的比例关系,即
其中
代表焦距,
也常常被称为深度depth。通过上式我们可以得到相机坐标系到图像坐标系的投影过程
其逆为
因此最后综合起来,从相机坐标系到像素坐标系的转换关系为
为了从像素坐标恢复相机坐标,必须知道深度depth
,相机内参矩阵
。一般会假设
,即物理像素是正方形的。