【发布时间】:2019-02-22 12:52:49
【问题描述】:
我想了解np.zeros和np.ones之间的区别。在我的波纹管代码中,两者都创建了黑色图像。但是np.zeros和np.ones有什么用。我什么时候应该使用它们。什么目的。我知道np.ones 用 1 填充矩阵,但目的是什么。我想创建一个white image
img = np.ones((512,512,3), np.uint8)
cv2.imshow('IMG', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img = np.zeros((512,512,3), np.uint8)
cv2.imshow('IMG', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
-
我不确定除了“一个充满零值的 ndarray”或“一个充满一个值的 ndarray”之外,您还能期待什么进一步的答案。就 RGB 而言,我怀疑你真的会看到任何不同的东西。
-
uint8类型的白色是 255 -
both create a black images- 不,一个创建黑色图像,另一个创建深灰色,其中所有像素都是rgb(1, 1, 1)。 -
因此,在具有 uint8 的 OpenCV 中,如果使用浮点数,则差异只是黑色阴影(0 或 1),它是黑色或白色,因为 OpneCV 在浮点数时使用 0-1 值
-
从它的名字可以看出一个是创建数组填充1,另一个填充数组0