首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >值不能为负数

问值不能为负数
EN

Stack Overflow用户
提问于 2020-07-09 05:46:41
回答 1查看 32关注 0票数 0

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

代码语言:javascript
复制
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),但没有成功。有人知道我是怎么做到的吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-09 05:49:29

因为intensity1是uint8,所以它是一个无符号整数。这意味着它只能包含正值。

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

代码语言:javascript
复制
diff_intensity = numpy.int8(intensity1 - intensity2)

int8是一个带符号的整数,所以它可以保存负值。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62804138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档