先列出参考资料吧,
一个网上的tutorial http://lear.inrialpes.fr/people/triggs/pubs/isprs96/node1.html 不过这篇tutorial看起来比较累,它是从投影空间来看calibration的,数学的定义太多,只看了前面一点。
Camera Calibration ( Book Chapter) http://research.microsoft.com/en-us/um/people/zhang/Papers/Camera%20Calibration%20-%20book%20chapter.pdf
******************************* 齐次坐标
在之前的一篇关于坐标变换的博文 (http://blog.csdn.net/u012702874/article/details/43312957) 里面提到过齐次坐标,当时说的是齐次坐标的优点是可以很自然地区分点和向量。除了这个优点,齐次坐标还可以很有效地应用在投影中,使得投影过程可以以矩阵相乘的形式描述。
投影中齐次坐标的引入:
在三维空间上选定一个视平面位于 z=T,给定视平面上一点(x,y)即(x,y,T),视点(0,0,0)到(x,y, T)构成一个向量。如果规定一个标准的视平面为z=1,那么该向量上所有点投影到该平面都是同一个点(x/T,y/T,1). 所以事实上 齐次坐标前面乘以任意非零比例系数k,空间中的点 k*(x,y,T) 都代表z=1平面上同一个投影点(x/T,y/T)
以上解释都是基于T不等于0。当T=0时,k*(x,y,0)代表z=0平面上的直线,它们平行于z=1这个视平面,永远不相交 ==> 这些点称作无穷点
******************************** 投影矩阵
上面我们说过,一旦有了齐次坐标表示,我们就可以用矩阵相乘表示3D到2D的投影过程。下面我们看怎么求得这个投影矩阵。
上图是空间中一个点M投影到视平面上一个点m的图示。焦距 f 是视点到视平面的距离
1. 我们先考虑最简单的情形,(满足下面的假设条件):
a). M 的参考坐标系是相机的坐标系本身。
b). z轴和视平面的交点(principle point)视为投影面坐标系的原点
c). u v 是投影面坐标轴 且 u v 正交
由相似三角形可得
所以在齐次坐标下,矩阵表示为