我正在尝试裁剪两个图像的特定部分并使用 OpenCV 交换这些图像在主图像中的位置。
下面是我用来执行上述要求的代码
image1 = img[198:238, 456:654]
image2 = img[120:282, 487:534]
resized_image = cv2.resize(image1, (90, 221))
resized_image1 = cv2.resize(image2, (211, 90))
img[120:282, 487:534] = resized_image
img[198:238, 456:654] = resized_image1
cv2.imwrite('01.png',img)
上面的代码成功地交换了两个图像的位置,但是当我动态传递值时,我将图像的位置声明为变量,当我使用这个变量图像时说“位置”不会被交换,如下例所示
position[0] = img[198:238, 456:654]
position[1] = img[120:282, 487:534]
image1 = position[0]
image2 = position[1]
resized_image = cv2.resize(image1, (90, 221))
resized_image1 = cv2.resize(image2, (211, 90))
position[1] = resized_image
position[0] = resized_image1
cv2.imwrite('01.png',img)
在没有发生交换之前,这里的图像保持不变。image1 = position[0]将在给定位置裁剪图像,但是当我尝试使用position[1] = resized_image没有实际发生的图像粘贴图像 时,预期会交换图像。那么为什么不发生交换。我该如何解决呢?
慕村225694
相关分类