Python - NumPy数组逻辑XOR操作的字节方式

时间:2016-09-14 05:09:57

标签: python numpy pillow

我正在通过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数组进行任何逻辑运算时,我会以“真实”的形式得到它。和'错误'

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(以字节为单位)的形式获取图像

1 个答案:

答案 0 :(得分:4)

从问题标题中,我认为您打算使用的函数是实际的numpy.bitwise_xor,它将按照您的预期输出0-255范围内的数组。

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