Opencv 将 numpy.zeros 绘制为灰度图像

新手上路,请多包涵

我正在努力理解 opencv 如何解释 numpy 数组。

 import cv2
import numpy as np

if __name__ == '__main__':
    size = (w, h, channels) = (100, 100, 1)
    img = np.zeros(size, np.int8)
    cv2.imshow('result', img), cv2.waitKey(0)
    cv2.destroyAllWindows()

灰度黑色 100x100 图像,对吗?不,它显示我是灰色的!为什么?

原文由 Vanuan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 507
1 个回答

好的,关键部分是dtype。我选择 np.int8 。当我使用 np.uint8 时,它是黑色的。

令人惊讶的是,当 dtype=np.int8 时,零被解释为 127(或 128)!

我希望零仍然是零,无论它是有符号的还是无符号的。

原文由 Vanuan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题