python opencv bitwise_xor

时间:2018-04-21 16:20:27

标签: python opencv

我正在尝试合并两张图片,这些图片是原始图片的片段。这是两个部分的示例:

pic a enter image description here

pic b enter image description here

但在尝试将它们组合时:

img_to_assemble = cv2.bitwise_xor(pic_a,pic_b)

我收到以下错误:

  

该操作既不是阵列操作阵列' (其中数组具有相同的数据   大小和类型),也不是'数组操作标量'也不是'标量运算数组'在   函数binary_op

1 个答案:

答案 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)

以下是我获得的结果:

enter image description here