为什么遮罩mask无论全黑还是全白,原图像都取反?

为什么遮罩mask无论全黑还是全白,原图像都取反?

import cv2

import numpy as np

img=cv2.imread('e:/a.jpg')

mask=np.zeros(img.shape,np.uint8)

mask[:,:,:]=0#全黑

#mask[:,:,:]=255#全白

cv2.imshow('img',img)

cv2.imshow('mask',mask)

xxx=cv2.bitwise_not(img,mask)

cv2.imshow('xxx',xxx)

cv2.waitKey()

cv2.destroyAllWindows()

我发觉cv2.bitwise_not(img,mask)的mask完全没任何用处,其它,例如,cv2.bitwise_xor(img,mask)的mask有作用。


回答:

import cv2

import numpy as np

img = cv2.imread('e:/a.jpg')

mask = np.zeros(img.shape, np.uint8)

mask[100:200, 100:200] = 255

result = cv2.bitwise_not(img, mask=mask)

cv2.imshow('img', img)

cv2.imshow('mask', mask)

cv2.imshow('result', result)

cv2.waitKey(0)

cv2.destroyAllWindows()


回答:

cv2.bitwise_not 的参数是这样的:

bitwise_not( src[, dst[, mask]] ) -> dst

它的第二个参数不是 mask ,而是 dst 。mask 是第三个参数。

你可以用 keyword 参数:

cv2.bitwise_note(img, mask=mask)

以上是 为什么遮罩mask无论全黑还是全白,原图像都取反? 的全部内容, 来源链接: utcz.com/p/938942.html

回到顶部