13

2 つの灰色の人間の顔を差し引いて違いを確認したいのですが、たとえば [4] - [6] を差し引くと [-2] (または差: [2]) ではなく [254] が得られるという問題が発生します。

print(type(face)) #<type 'numpy.ndarray'>
print(face.shape) #(270, 270)
print(type(nface)) #<type 'numpy.ndarray'>
print(nface.shape) #(270, 270)

#This is what I want to do:
sface = face - self.nface #or
sface = np.subtract(face, self.nface)

どちらも負の数を与えませんが、代わりに 0 の後の残りを 255 から引きます。

面の出力例:

[[  8 255   8 ...,   0 252   3]
 [ 24  18  14 ..., 255 254 254]
 [ 12  12  12 ...,   0   2 254]
 ..., 
 [245 245 251 ..., 160 163 176]
 [249 249 252 ..., 157 163 172]
 [253 251 247 ..., 155 159 173]]

私の質問: sface を numpy.ndarray (270,270) にするにはどうすればよいです? (これは 270x270 ではなく 1 次元のみを返すため、numpy.setdiff1d ではありません)

働く

@ajcr の回答から、次のことを行いました(減算された顔を表示するための abs()):

face_16 = face.astype(np.int16)
nface_16 = nface.astype(np.int16)
sface_16 = np.subtract(face_16, nface_16)
sface_16 = abs(sface_16)
sface = sface_16.astype(np.int8)
4

2 に答える 2