我正在尝试将 3D 对象插入照片中,但不是我拍摄的。元信息被删除,所以我只能猜测场景中物体的相机参数和尺寸。在这种情况下如何设置正确的campoints,有什么方法吗?
我已经看到人们正在绘制辅助线,寻找消失点,但是虽然我理解消失点的含义,但我不明白它如何帮助恢复视角。关于这个话题有什么好的文章吗?
我正在尝试将 3D 对象插入照片中,但不是我拍摄的。元信息被删除,所以我只能猜测场景中物体的相机参数和尺寸。在这种情况下如何设置正确的campoints,有什么方法吗?
我已经看到人们正在绘制辅助线,寻找消失点,但是虽然我理解消失点的含义,但我不明白它如何帮助恢复视角。关于这个话题有什么好的文章吗?
要从给定图像中完全确定场景 3D 数据,您需要知道形成图像的透视投影参数。他们是:
相机内在特性:焦距(必须!)和失真参数(如果您想要高精度)
详细:焦距可以从视角获得,公式为:fx = imageWidth/(2*tan(alphaX)),其他维度类似。如果您既没有 fx 也没有光圈,则无法重建 3D 图像。
提取它们的另一种方法是校准相机。请参阅http://opencv.itsezez.com/modules/calib3d/doc/calib3d.html,但您似乎无法使用它(您说您无权使用相机。)
消失点 (VP) 用于确定相机定向的角度。因此,图像中心和 VP 之间的差异为您提供了旋转信息:
偏航 = ((camera.center.x (pixels) - VP.x)/image.x)* 光圈。
音高=相似。
滚转角不能从 VP 中提取,而是从地平线提取。
您需要的最后一个参数是翻译。根据应用程序,您可以将它们全部设置为 0,或者只考虑高度相关。通常无法从图像中恢复它们。
现在,有了所有这些数据,您可以在此处查看 Opencv 虚拟摄像机旋转/平移以鸟瞰
看看所有这些措施如何影响您的透视校正。
不是一个非常简单的主题,但请参阅此处 2 月 23 日的讲座: https ://courses.engr.illinois.edu/cs543/sp2017/
没有一种万能的解决方案,但根据场景结构,通常可以将对象添加到照片中。另见:http ://dl.acm.org/citation.cfm?id=2024191