(一)计算透视中心的三维位置
给出了透视四面体的三个控制点和三条腿的长度,透视中心的三维位置可以确定如下:
(1)构造一个平面P1,它相对于平面P-ABL是正交的。这个平面的构造不需要知道透视中心L的位置,透视中心的位置是需要我们计算的。考虑到四面体的一个面P-ABL。知道LA,LB和AB的长度,我们可以用余弦定理求得角LAB,并且LA在AB上的投影为QA.(注意LQA是直角,并且Q是AB上距离透视中心L最近的点)。构造一个与面P-ABQ正交的平面,这个平面通过透视中心L。
(2)类似的,构造一个平面P2正交面P-ACL。
(3)构造一个由A,B,C形成的平面P3。
(4)P1,P2,P3平面相交,交点R(位于P3面上)是距离透视中心L最近的点。
(5)计算AR的长度,并结合LA的长度计算RL的长度,即L距离面P3的距离
(6)计算向量AB和AC的叉集,形成一个垂直于面P3的一个向量,通过RL的长度缩放该向量,并添加到R上,就可得到透视中心L的三维位置。
(二)计算像片的方位
如果知道了摄像机的焦距和主光点,就有可能计算出像片的方位相对于世界坐标系的方位。也就是像平面坐标系的原点和方位相对于三维参考框架,求解过程如下:
(1)按照(一)中描述的计算出透视中心的3维参考框架坐标
(2)计算三个控制点在图像中位置的三维坐标,我们可以计算透视中心和控制点形成的三条线的三维坐标(类似向量),知道了摄像机的焦距,我们可以计算,并从每条射线减去从cp到图像平面沿射线的距离。
(3)由步骤(2)获得的三个点(图像中)计算出平面方程,这个平面的法线经过透视中心CP,给出了我们像平面坐标系的原点(例如,主光点的三维位置)以及这个坐标系统的Z轴。
(4)像平面的方位(关于Z轴的)可以获得通过计算来自于主光点到步骤(2)中任意一个计算得到的点的矢量。
- 具体可参考原论文:Martin A. Fischler & Robert C. Bolles (June 1981). "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography" (PDF). Comm. ACM. 24 (6): 381–395. doi:10.1145/358669.358692.