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]
。
答案 0 :(得分:1)
图像表示为三元组(R,G,B)的矩阵。前两个坐标表示图像像素的坐标。第三个索引代表频道。当您执行photo_data[:,:,0]
时,将创建一个表示整个图像的红色值的矩阵。
答案 1 :(得分:1)
图像表示为3D阵列:
例如,project.views
是像素photo_data[10, 20, 1)
的绿色值。
所以(10,20)
是第一行中所有像素的所有三个平面。
但是photo_data[0]
是所有行和所有列中所有像素的红色值。