为什么我们将整数放在第三位?

时间:2018-08-16 19:21:54

标签: python python-3.x scipy

from scipy import misc

photo_data = misc.imread(r'C:\Users\user\image\layers.jpg')

red_mask   = photo_data[:, : ,0] > 150
green_mask = photo_data[:, : ,1] > 100
blue_mask  = photo_data[:, : ,2] < 100

我不明白的是为什么我们这样做photo_data[:, : ,0]而不是photo_data[0]

2 个答案:

答案 0 :(得分:1)

图像表示为三元组(R,G,B)的矩阵。前两个坐标表示图像像素的坐标。第三个索引代表频道。当您执行photo_data[:,:,0]时,将创建一个表示整个图像的红色值的矩阵。

答案 1 :(得分:1)

图像表示为3D阵列:

  • 维度0是该行。
  • 维度1是列。
  • 第2维是平面(红色,绿色或蓝色)。

例如,project.views是像素photo_data[10, 20, 1)的绿色值。

所以(10,20)是第一行中所有像素的所有三个平面。

但是photo_data[0]是所有行和所有列中所有像素的红色值。