假设我有一个尺寸为 (1920, 1080, 3)
的图像,我想将 R、G、B 值提取到单独的数组 R , G, B
。我试着这样做
for i in range(image.shape[0]):
for j in range(image.shape[1]):
B = np.append(B, image[i, j][0])
G = np.append(G, image[i, j][1])
R = np.append(R, image[i, j][2])
但正如预期的那样,这非常慢,我如何在内置函数中使用 numpy 来做到这一点?
原文由 Sigma 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你想让它以
OpenCV
的方式使用,那么你可以使用cv2.split()
,记住图像的通道:或者,如果您可能喜欢直接的 numpy 格式,那么您可以直接使用 [根据@igaurav 的评论,这似乎更有效]
您可以使用
np.shape[2]
来检查给定图像中的通道数。