我遇到了我制作的拼接程序的问题。我对图像进行切片的方式使其成为唯一可行的方法是,如果第一张图像位于左侧和上方,则会将其拼接到其中。
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 stitch 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
当最左边的图像由image1表示时,此代码运行。
当我颠倒图像的顺序时,我只收到图像,因为它在我的代码中的最后一行“结果[0 ... =图像2”无法在没有定向的方向上滑动图像在缝合的两个图像之间的左上角中的第一个图像。
以下是单应性的完整示例
这是两张图片之间的同形图及其结果:
This is the correct result with imaege1 on the left
This is the incorrect result with image1 on the right
我知道问题出在最后的切片线上,我只是不知所措,任何帮助都表示赞赏。