我正在尝试将3D对象插入照片中,而不是我拍摄的照片。元信息被删除,因此我只能猜测场景中对象的相机参数和尺寸。在这种情况下如何设置适当的营地?是否有任何方法论?
我已经看到人们正在绘制辅助线,找到消失点,但是当我理解消失点的意义时,我不知道如何帮助恢复视角。关于这个主题的任何好的写作?
答案 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