我得到了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 = 12
和intensity2 = 16
,我得到252。我想要-4。我曾尝试将差异转换为int16:diff_intensity = numpy.int16(intensity1 - intensity2)
,但没有成功。有人知道我该怎么做吗?
由于intensity1
是uint8
,因此它是一个无符号整数。这意味着它只能保持正值。
您需要将其转换为int8
,如下所示:
diff_intensity = numpy.int8(intensity1 - intensity2)
int8
是一个有符号整数,因此它可以包含负值。
(您必须导入numpy才能工作。(