值不能为负数



我得到了2个像素的灰色图像(用open cv转换(,我想减去它们:

frame = cv2.cvtColor(frame_color, cv2.COLOR_BGR2GRAY)
for x in range(2064):
for y in range(1200):
intensity1 = frame[y, x]
intensity2 = frame[y + 1, x]
diff_intensity = intensity1 - intensity2

diff_intensity只能在0-255之间。所以如果intensity1 = 12intensity2 = 16,我得到252。我想要-4。我曾尝试将差异转换为int16:diff_intensity = numpy.int16(intensity1 - intensity2),但没有成功。有人知道我该怎么做吗?

由于intensity1uint8,因此它是一个无符号整数。这意味着它只能保持正值。

您需要将其转换为int8,如下所示:

diff_intensity = numpy.int8(intensity1 - intensity2)

int8是一个有符号整数,因此它可以包含负值。

(您必须导入numpy才能工作。(

相关内容

  • 没有找到相关文章

最新更新