我有一个图像img。我还有一个值为255的掩码,我希望保留img的像素值在所有其他地方都是0。
我想用这两个图像即。掩码和img使得我在掩码为255的位置创建一个具有原始img值的矩阵,并且在掩码为0的所有位置创建值-1。
所以,到目前为止,我写过:
maskedImg = cv2.bitwise_and(img, mask)
但是maskedImg在掩码为0的所有位置都有0。如何使用快速按位运算在所有其他位置获取值-1而不是0?
我不知道你的形象是什么类型的。默认值为np.uint8,因此您不能在结果上设置-1,它会下载到-1 + 256 = 255
。也就是说,如果dtype是np.uint8
,则不能将其设置为负值。
如果要设置为-1,则应更改dtype
。
#masked = cv2.bitwise_and(img, mask).astype(np.int32)
masked = np.int32(img)
masked[mask==0] = -1