消失点如何帮助恢复正确的摄像机视角?

时间:2011-10-26 15:23:07

标签: 3d camera perspective vanishing-point

我正在尝试将3D对象插入照片中,而不是我拍摄的照片。元信息被删除,因此我只能猜测场景中对象的相机参数和尺寸。在这种情况下如何设置适当的营地?是否有任何方法论?

我已经看到人们正在绘制辅助线,找到消失点,但是当我理解消失点的意义时,我不知道如何帮助恢复视角。关于这个主题的任何好的写作?

2 个答案:

答案 0 :(得分:6)

要完全确定给定图像的场景3D数据,您需要知道形成图像的透视投影参数。他们是:

  • 相机内在函数:焦距(必须!)和失真参数(如果你想要高精度)

    • 相机外部参数(三轴上的旋转/平移)

详细说明: 可以从视角获得焦距,使用以下公式:fx = imageWidth /(2 * tan(alphaX)),并且对于其他维度类似。如果您既没有fx也没有光圈,则无法重建您的3D图像。

提取它们的另一种方法是校准相机。请参阅http://opencv.itseez.com/modules/calib3d/doc/calib3d.html,但似乎您无法使用它(您说您无法访问相机。)

消失点(VP)用于确定相机定向的角度。因此,图像中心和VP之间的差异为您提供旋转信息:

yaw =((camera.center.x(pixels) - VP.x)/image.x)*光圈。

pitch =相似。

无法从VP中提取侧倾角,而是从水平线中提取。

您需要的最后一个参数是翻译。根据应用程序,您可以将它们全部设置为0,或仅考虑高度相关。通常无法从图像中恢复它们。

现在,拥有所有这些数据,你可以看看这里 Opencv virtually camera rotating/translating for bird's eye view

了解所有这些措施如何影响您的视角矫正。

答案 1 :(得分:-2)

这不是一个非常简单的主题,但请参阅2月23日的讲座: https://courses.engr.illinois.edu/cs543/sp2017/

没有一个通用的解决方案,但根据场景结构,通常可以在照片中添加对象。另见:http://dl.acm.org/citation.cfm?id=2024191