我有一个小问题希望你能帮助我。我有一个相机女巫,我用它拍了 2 张照片。我想用一张图像中的 2 张图像进行重构。我只用相机进行翻译,拍摄平面电视屏幕的图像。我听说单应性仅在相机旋转时才有效。当我只有翻译时该怎么办?
提前致谢。
我有一个小问题希望你能帮助我。我有一个相机女巫,我用它拍了 2 张照片。我想用一张图像中的 2 张图像进行重构。我只用相机进行翻译,拍摄平面电视屏幕的图像。我听说单应性仅在相机旋转时才有效。当我只有翻译时该怎么办?
提前致谢。
因为您正在对平面表面(在您的情况下是电视屏幕)进行成像,所以使用透视相机的所有图像都将通过单应性相关联。如果您的相机正在平移和/或旋转,这也是一样的。因此,要拼接表面的不同图像,您不需要进行任何 3D 几何处理(基本矩阵计算/三角测量等)。
要解决您的问题,您需要执行以下操作:
warpPerspective
方法在 openCV 中执行此操作。用于执行这些步骤的开源项目在这里。
如果您的电视缺乏明显的功能或背景有很多杂乱,则估计H的方法可能不是很可靠。如果是这种情况,您可以手动单击电视上目标和源图像中的四个或更多对应关系,并使用 OpenCV 的方法计算H。findHomography
请注意,您的通信不能完全任意。具体来说,不应该存在三个共线的对应关系(在这种情况下无法计算H )。还应尽可能准确地单击它们,因为错误会影响最终针迹并导致重影伪影。
一个重要的警告是,如果您的相机有明显的镜头畸变。在这种情况下,您的图像不会通过单应性相关。您可以通过使用 OpenCV 对相机进行校准来解决此问题,然后您需要预处理图像以消除镜头失真(使用 OpenCV 的undistort
方法)。