2016-09-14 3 views
1

私は枕を介して画像を読み取り、それをnumpy配列に変換しています。私はこれら2つのnumpyのアレイ上の任意の論理演算を行う際にPython - NumPy Arrayバイト単位の論理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]] 

は今、私は真、偽と「真」と「偽」

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は、上記のすべての数字をTrueと0として扱います.Falseと常に処理され、ブール値配列(0と1のみ)を出力します。

+1

また、ビットごとの排他的またはnumpy配列の中置演算子は '^'です。 –