我试图在扭曲它们之后将两个图像混合在一起。问题是图像大小不一样。我试过这个让混合工作:
#warped_image and image_2 are parameters, warped_image is always larger
output_image = np.copy(warped_image)
topBottom = (warped_image.shape[0] - image_2.shape[0]) // 2
leftRight = (warped_image.shape[1] - image_2.shape[1]) // 2
if warped_image.shape[0] % 2 != 0:
warped_image = warped_image[0: warped_image.shape[0] - 1, 0: warped_image.shape[1] - 1]
image_2 = cv2.copyMakeBorder(image_2, topBottom, topBottom, leftRight, leftRight, cv2.BORDER_CONSTANT, value=[0,0,0])
while image_2.shape[0] != warped_image.shape[0]:
image_2 = cv2.copyMakeBorder(image_2, 1, 1, 1, 1, cv2.BORDER_CONSTANT,
value=[0, 0, 0])
cv2.addWeighted(warped_image, .5, image_2, .5, 0.0, output_image)
问题是第一次尝试时混合是不准确的,如果我尝试将已经混合的图像与另一个混合,图像会完全失真。
有没有更好的方法在特定点混合两个图像?
修改结果:
两张图片:
将第三个与前两个混合:
第二张图片实际上太大而无法加载到此处。它的最终尺寸为62521×4111,非常大,因为图像都是3200×2368