【发布时间】:2015-09-08 05:36:43
【问题描述】:
import cv2
image1 = cv2.imread('one.jpg', 0)
image2 = cv2.imread('two.jpg', 0)
diff = image1 - image2
对于上面的代码,对于某些值,由于减法而发生溢出。 例如:
238 - 254 = 240
我能做些什么来防止这种溢出,而是得到-16 作为答案?
【问题讨论】:
-
signed int iso unsigned byte as type?
-
现在是 unsigned int8.我要签名吗?
-
是的,这是一个无符号字节。
-
我该怎么做?一些 numpy 函数?
-
只要值是 Python 整数,就不会有任何问题。如果您正在处理 c_short 或 c_ushort 等 ctypes,您将遇到问题。 Python 甚至还会自动将整数转换为长整数,或者如果值超过限制,则自动使用长整数。 docs.python.org/2.4/lib/typesnumeric.html 简而言之,我怀疑您是在“纯 Python”中执行此操作。也许一些代码会有所帮助?