numpy数据类型混乱

时间:2019-04-14 13:42:33

标签: python numpy cv2

以下程序将RGB图像拆分为单独的颜色通道

import cv2
import numpy as np
img = cv2.imread('dog_backpack.jpg')
cv2.imshow('RGB COLOR',img)
cv2.waitKey(0)
B,G,R = cv2.split(img)
zero = np.zeros(img.shape[0:2],dtype="uint8")
cv2.imshow('RED',cv2.merge([zero,zero,R]))
cv2.waitKey(0)
cv2.imshow('GREEN',cv2.merge([zero,G,zero]))
cv2.waitKey(0)
cv2.imshow('BLUE',cv2.merge([B,zero,zero]))
cv2.waitKey(0)
cv2.destroyAllWindows()
在第7行上的

当我将np.zeros函数与任何int数据类型一起使用时,它将引发错误,但是当我将其与uint8一起使用时,它将正常运行。 请解释

1 个答案:

答案 0 :(得分:1)

默认情况下,除非更改标志,否则cv2.imread将使用np.uint8加载图像。

您也可以这样写:

np.zeros(img.shape[:2], dtype=img.dtype)