6

我正在努力理解 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 图像,对吧?不,它显示我是灰色的!为什么?

4

2 回答 2

12

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

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

我预计零仍然是零,无论它是有符号的还是无符号的。

于 2013-09-22T16:06:41.710 回答
3

对于 BGR 图像,

img = np.zeros([height, width, 3], dtype=np.uint8)
于 2017-05-09T17:04:28.120 回答