OpenCV Python Stitch无序图像

时间:2017-02-10 20:15:17

标签: python image opencv image-stitching

我目前已经建立了一个能够拼接任意数量图像的拼接程序,但它们必须具有特定的顺序,这对我的特定图像集来说是一个问题(使用1452个图像)。我的目标是创建一个无序的拼接程序。我确信当我在物理上(实际上)将图像彼此拼接时就会发生这个问题。

这是我缝合的代码(假设找到的关键点是准确的以及单应性)

    def stitchMatches(self,image1,image2,homography):
    #gather x and y axis of images that will be stitched
    height1, width1 = image1.shape[0], image1.shape[1]
    height2, width2 = image2.shape[0], image2.shape[1]
    #create blank image that will be large enough to hold stitched image
    blank_image = np.zeros(((width1 + width2),(height1 + height2),3),np.uint8)
    #stitch image two into the resulting image while using blank_image 
    #to create a large enough frame for images
    result = cv2.warpPerspective((image1),homography,blank_image.shape[0:2])
    #numpy notation for slicing a matrix together allows you to see the image
    result[0:image2.shape[0], 0:image2.shape[1]] = image2
    return result

我认为问题在于这两行。

result = cv2.warpPerspective((image1),homography,blank_image.shape[0:2])
result[0:image2.shape[0], 0:image2.shape[1]] = image2

当我在有序图像上运行代码(图像1位于最东北部)时,设置为结果。

Ordered Images

然而,当我以相反的顺序运行图像时,我得到了这个结果。

enter image description here

根据我的理解,这是因为我已将结果图像形状设置为映射到图像2,但无法开展解决方法。

这是一张多张图片的照片,显示相同的图片被裁剪出来的问题。

enter image description here

感谢任何帮助。

0 个答案:

没有答案