2

我有一个小问题希望你能帮助我。我有一个相机女巫,我用它拍了 2 张照片。我想用一张图像中的 2 张图像进行重构。我只用相机进行翻译,拍摄平面电视屏幕的图像。我听说单应性仅在相机旋转时才有效。当我只有翻译时该怎么办?

提前致谢。

4

1 回答 1

3

因为您正在对平面表面(在您的情况下是电视屏幕)进行成像,所以使用透视相机的所有图像都将通过单应性相关联。如果您的相机正在平移和/或旋转,这也是一样的。因此,要拼接表面的不同图像,您不需要进行任何 3D 几何处理(基本矩阵计算/三角测量等)。

要解决您的问题,您需要执行以下操作:

  1. 您确定图像之间的单应性。因为您只有两个图像,您可以选择第一个作为“源”,第二个作为“目标”,并计算从目标到源的单应性。这通常通过特征检测和鲁棒的单应性拟合来完成。让我们用 3x3 矩阵H来表示这个单应性。
  2. 您使用H将目标图像扭曲到源图像。您可以使用该warpPerspective方法在 openCV 中执行此操作。
  3. 使用混合功能合并您的源和扭曲的目标。

用于执行这些步骤的开源项目在这里

如果您的电视缺乏明显的功能或背景有很多杂乱,则估计H的方法可能不是很可靠。如果是这种情况,您可以手动单击电视上目标和源图像中的四个或更多对应关系,并使用 OpenCV 的方法计算H。findHomography请注意,您的通信不能完全任意。具体来说,不应该存在三个共线的对应关系(在这种情况下无法计算H )。还应尽可能准确地单击它们,因为错误会影响最终针迹并导致重影伪影。

一个重要的警告是,如果您的相机有明显的镜头畸变。在这种情况下,您的图像不会通过单应性相关。您可以通过使用 OpenCV 对相机进行校准来解决此问题,然后您需要预处理图像以消除镜头失真(使用 OpenCV 的undistort方法)。

于 2018-01-12T09:31:20.470 回答