我有一个图像img。我还有一个值为 255 的掩码,在我想保留 img 像素值的所有其他地方都是 0。
我想使用这两个图像,即。掩码和 img 以便我在掩码为 255 的位置创建一个具有原始 img 值的矩阵,在掩码为 0 的所有位置创建值 -1。
所以,到目前为止,我已经写了这个:
maskedImg = cv2.bitwise_and(img, mask)
但是 maskedImg 在掩码为 0 的所有地方都为 0。如何使用快速按位运算在所有其他地方获得值 -1 而不是 0?
最佳答案
我不知道你的图像的 dtype 是什么。默认值为 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
关于python - 如何正确设置 OpenCV python 中的二进制掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47859327/