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)。
我正在通过 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)。