Camera 相机平移时的单应性(用于缝合)

Camera 相机平移时的单应性(用于缝合),camera,computer-vision,homography,image-stitching,opencv-stitching,Camera,Computer Vision,Homography,Image Stitching,Opencv Stitching,我有点小问题,希望你能帮我解决。 我有一个相机,我带了两张照片。我想在一张图像中重建两张图像。 我只会用相机翻译一个平面电视屏幕的图像。我听说单应仅在相机旋转时起作用。 当我只有翻译的时候我该怎么办 提前感谢。因为您正在对一个平面(在您的例子中是一个电视屏幕)进行成像,所以使用透视相机拍摄的所有平面图像都将通过同形文字进行关联。如果您的相机正在平移和/或旋转,这是相同的。因此,要缝合曲面的不同图像,不需要进行任何3D几何处理(基本矩阵计算/三角剖分等) 要解决您的问题,您需要执行以下操作: 确定

我有点小问题,希望你能帮我解决。 我有一个相机,我带了两张照片。我想在一张图像中重建两张图像。 我只会用相机翻译一个平面电视屏幕的图像。我听说单应仅在相机旋转时起作用。 当我只有翻译的时候我该怎么办


提前感谢。

因为您正在对一个平面(在您的例子中是一个电视屏幕)进行成像,所以使用透视相机拍摄的所有平面图像都将通过同形文字进行关联。如果您的相机正在平移和/或旋转,这是相同的。因此,要缝合曲面的不同图像,不需要进行任何3D几何处理(基本矩阵计算/三角剖分等)

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

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

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


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

    基本上,您需要计算两者之间的相对变换(即旋转和平移)。这可以通过计算基本矩阵来实现。一旦你有了它,你可以三角化你匹配的特征点,并获得一个稀疏的重建。否则你可能需要研究光度误差和密集重建,但这有点复杂。正如我所说,我只是在做一个翻译。单纯形不就是你说的吗(“三角化特征点”)?“光度误差和密集重建”@因为尺寸太大,所以无法显示。我的意思是这两张图片之间有一个间隙。如果我把第二张照片拍得稍微高一点,我觉得。。但我不明白为什么会这样?