2016-09-14 50 views
1

我读通过枕头的图像并且将其转换为numpy的阵列。的Python - NumPy的阵列逻辑XOR操作字节明智

 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]] 

现在,当我做这2个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]] 

我的图像处理功能与真,假着工作的形式...我怎样才能得到一个图像的形式0,255(以字节为单位)

回答

4

从问题标题,我想你打算使用的函数是真实的numpy.bitwise_xor它将输出阵列在0-255范围内你的期望。

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

+1

另请注意,或numpy的阵列的按位异管道符是''^。 –