您的位置:首页 > 其它

关于张正友标定法

2015-12-03 15:24 162 查看
关于算法的实现最好参照一下 《opencv2计算机视觉编程手册》 第191页,讲的非常好,事实上我们只需要有3D点和2D点的对应我们就可以计算出对应的相机矩阵了,但是一直让我迷惑的是3D点如何得到。那么张正友标定法事实上是建立了一个棋盘模型,对这个棋盘模型进行了不同角度的拍照,这样这些拍照image中的棋盘角点就可以作为我们要得到的2D点,而不同角度改变的是外参矩阵。那么如何得到3D的点呢?

关键在于世界坐标系的原点是我们设定的,我们设点世界坐标系的原点在棋盘上,同时世界坐标系的xoy平面与棋盘平面重合,那么此时在棋盘上面每一个格子上的角点就有了3D坐标,分别是它对应的(格子高度,格子宽度,0) 甚至在实际编程实现的时候都不需要将3D坐标设计为实际的格子宽度,格子高度,直接使用(0,0,0) (0,1,0)等来代替。因为格子是等间距的,所以这样的坐标来代替原来的(格子高度,格子宽度,0) 只会让外参矩阵多了一个scale变换,而不会影响内参矩阵。

对于内参矩阵的具体数学计算,可以参考一下这篇博文
http://blog.csdn.net/pinbodexiaozhu/article/details/43373247
核心在于对每张拍摄棋盘的相片,拿着对应的2D点和棋盘实际在世界坐标系中的点(x,y,0)退化后的(x,y)算homograph 内参矩阵可以通过这个homograph来推导产生
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: