对于齐次坐标系,感觉是计算机视觉中还是比较常用的,之前比较不清楚,看了网上大神的博客还有《Robotics,Vision and Control》之后,有了一定的了解,在这里总结下。
“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”
—— F.S. Hill, JR
一. 用于区分向量还是点
首先给个三维空间的坐标 (1,2,3),从这个坐标中很难说明这代表的是向量还是点,但是转换为其次坐标系就比较容易理解了。
对于一个向量 v v v 以及 基 o a b c o_{abc} oabc, 很容易找到一组坐标 v 1 , v 2 , v 3 v_{1}, v_{2} , v_{3} v1,v2,v3, 使得 v = v 1 a + v 2 b + v 3 c v=v_{1}a+ v_{2}b + v_{3}c v=v1a+v2b+v3c …(1)
对于一个点 p p p 而言,我们同样能找到一组坐标 p 1 , p 2 , p 3 p_{1}, p_{2} , p_{3} p1,p2,p3 , 使得 p − o = p 1 a + p 2 b + p 3 c p - o= p_{1}a+ p_{2}b + p_{3}c p−o=p1a+p2b+p3c …(2)
从上面对向量和点的表达,我们可以看出为了在坐标系中表示一个点(如p),我们把点的位置看作是对这个基的原点 o 所进行的一个位移,即一个向量: p − o p-o p−o(有的书中把这样的向量叫做位置向量——起始于坐标原点的特殊向量),我们在表达这个向量的同时用等价的方式表达出了点 p p p: p = o + p 1 a + p 2 b + p 3 c p = o + p_{1}a+ p_{2}b + p_{3}c p=o+