python 加减法 负数_Python numpy减法没有负数(4-6给出254)

我想从两张人脸中减去2灰色的以看出区别,但我遇到了一个问题,例如减去[4]-[6]得到的是[254]而不是[2](或差异:[2])。print(type(face)) #

print(face.shape) #(270, 270)

print(type(nface)) #

print(nface.shape) #(270, 270)

#This is what I want to do:

sface = face - self.nface #or

sface = np.subtract(face, self.nface)

两者都不给出负数,而是从255减去0后的余数。

sface的输出示例:[[ 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(270270),在减去面和nface中每个点之间的差之后,要么是负值,要么是负值?(因此不是numpy.setdiff1d,因为它只返回1个维度,而不是270x270)

工作

根据@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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值