【发布时间】:2017-05-20 22:00:57
【问题描述】:
假设我有一个尺寸为 (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 来做到这一点?
【问题讨论】:
-
这是基本索引:
B = image[:,:,0]; G = image[:,:,1]; R = image[:,:,2]。查看几乎所有 numpy 教程。 -
或者只是滚动你的轴,然后取简单的切片 ...rolled = np.rollaxis(rgb,-1) ... r = rolling[0], g = rolling[1], b =滚动[2]
-
我建议你在你的vs代码中安装这个扩展——marketplace.visualstudio.com/…它直接为你提供了这样的sn-ps。