在图1里,设世界坐标系与摄像机坐标系重合,像平面坐标系x’y’与摄像机坐标系的xy平面重合(以下用xy表示x’y’),光轴与z轴重合。像平面中心位于原点处,镜头中心坐标(0,0, λ), λ是镜头的焦距。
设(X,Y,Z)是3-D空间中任意点W的世界坐标。由相似三角形可得:
[attach]16360[/attach]
则可得到空间3-D点投影后的像平面坐标:
[attach]16361[/attach]
这些等式是非线性的,因为其中含有变量Z。下面借助齐次坐标将它们表示成线性矩阵形式。
空间点坐标XYZ的齐次坐标定义为(kX,kY,KZ,k),其中k是1个任意的非零常数。很明显,将齐次坐标变回笛卡尔坐标可用第4个坐标量去除前3个坐标量得到。这样1个笛卡尔坐标系中的点可用矢量形式表示为: W=[X Y Z]T
其对应的齐次坐标可表示为:
Wh=[kX kY kZ k]T
如果定义透视变换矩阵为:
[attach]16362[/attach]
它和Wh的乘积PWh给出1个记为Ch的矢量:
[attach]16363[/attach]
这里Ch的元素是齐次形式的摄像机坐标,这些坐标可用Ch的第4项分别去除前3项转换成笛卡尔形式。所以,摄像机坐标系中任意一点笛卡尔坐标可表式成矢量形式:
[attach]16364[/attach]
在智能车路径识别中,摄像头坐标系与空间坐标系关系建立如下:
[attach]16365[/attach]
我再解释一下最后这个式子:计算X坐标用到一个负号,和减去一个2.4,是因为摄像头是倒装,摄像头成像4.8mm,减去中心计算的就是相对于中间的坐标。
可以借用MATLAB等工具解算出参数,直接带到单片机里面做运算~