我正在尝试合并两张图片,这些图片是原始图片的片段。这是两个部分的示例:
但在尝试将它们组合时:
img_to_assemble = cv2.bitwise_xor(pic_a,pic_b)
我收到以下错误:
该操作既不是阵列操作阵列' (其中数组具有相同的数据 大小和类型),也不是'数组操作标量'也不是'标量运算数组'在 函数binary_op
答案 0 :(得分:1)
为了执行您想要的操作,请首先确保您的图像大小相同。
要合并我执行的两张图片cv2.bitwise_or()
python中的代码:
img_a = cv2.imread("a.png", 1)
img_b = cv2.imread(".png", 1)
ret, thresh = cv2.threshold(img_b, 10, 255, cv2.THRESH_BINARY)
rows,cols,channels = img_b.shape
roi = img_a[0:rows, 0:cols ]
img2gray = cv2.cvtColor(img_b,cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY)
mask_inv = cv2.bitwise_not(mask)
img1_bg = cv2.bitwise_and(roi, roi, mask = mask_inv)
img2_fg = cv2.bitwise_or(img_b, img_b, mask = mask)
dst = cv2.add(img1_bg,img2_fg)
img_a[0:rows, 0:cols ] = dst
cv2.imshow('res',img_a)
以下是我获得的结果: