[英]How to set overflowed subtraction in python to result in a zero?
这是在 numpy 中执行此操作的一种方法,不需要转换为更大的整数类型:
f - b.clip(None, f)
或者,等效地,
f - np.minimum(b, f)
我通过创建自己的函数来解决这个问题,该函数在减去每个像素之前比较每个像素以防止发生任何溢出。
def custom_sub(i2,i1):
x = len(i1)
y = len(i1[0])
o = deepcopy(i1)
for ix in range(x):
for iy in range(y):
if i1[ix][iy] > i2[ix][iy]:
o[ix][iy] = 0
else:
o[ix][iy] = i2[ix][iy]-i1[ix][iy]
return o
这是输出,现在只有发生火花的明亮区域。
这个问题和我的很相似。 在我的例子中,减法是用 uint8 类型执行的,这可以转换为 int16。 然后可以迭代生成的图片并删除任何负数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.