numpy 数据类型的混淆
confusion in numpy datatypes
下面的程序将 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 一起使用时,它 运行 正确。
请解释
默认情况下,cv2.imread
将使用 np.uint8
加载图像,除非您更改标志。
你也可以这样写:
np.zeros(img.shape[:2], dtype=img.dtype)
下面的程序将 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 一起使用时,它 运行 正确。 请解释
默认情况下,cv2.imread
将使用 np.uint8
加载图像,除非您更改标志。
你也可以这样写:
np.zeros(img.shape[:2], dtype=img.dtype)