我很难理解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()
灰度黑色100 x100图像,对吗?不,它显示的是灰色!为什么?
3条答案
按热度按时间slhcrj9b1#
好的,关键是dtype,我选择了
np.int8
,当我使用np.uint8
时,它是黑色的。令人惊讶的是,当
dtype=np.int8
时,零被解释为127(或128)!我期望零仍然是零,不管它是有符号的还是无符号的。
gojuced72#
对于BGR图像,
iqih9akk3#
您的代码需要更改两个方面:
1.大小=(宽,高,通道)=(100,100,3)
由于(100,100,1)将创建灰度图像,彩色图像(BGR或RGB)需要3个通道,红、蓝和绿色各1个