Python - NumPy 数组按字节逻辑异或运算

Python - NumPy Array Logical XOR operation byte wise

我正在通过 Pillow 读取图像并将其转换为 numpy 数组。

        A = numpy.asarray(Image.open(
            ImageNameA).convert("L"))
        B = numpy.asarray(Image.open(
            ImageNameB).convert("L"))

print A
[[255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]
 ..., 
 [255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]
 [255 255 255 ..., 255 255 255]]

现在,当我对这两个 numpy 数组进行任何逻辑运算时,我会以 'True' 和 'False'

的形式得到它
Answer = numpy.logical_xor(A,B)

print  numpy.logical_xor(A,C)
[[False False False ..., False False False]
 [False False False ..., False False False]
 [False False False ..., False False False]
 ..., 
 [False False False ..., False False False]
 [False False False ..., False False False]
 [False False False ..., False False False]]

我的图像处理函数无法处理 True、False ...我怎样才能获得 0 、 255(以字节为单位)形式的图像

从问题标题来看,我想您打算使用的函数实际上是 numpy.bitwise_xor 它会按照您的预期输出 0-255 范围内的数组。

logical_xor 将所有大于 1 的数字视为 True,将 0 视为 False,并始终输出布尔数组(仅 0 和 1)。