如何使用matplotlib读取所有蓝色像素的坐标?

时间:2019-04-05 13:58:39

标签: python image matplotlib imread

我想使用matplolib的imshow将jpeg图像的所有蓝色像素添加到列表中。启动代码时,没有得到RGB代码结果:“ array([89,67,28],dtype = uint8),array([51,53,16],dtype = uint8),'等。 。怎么了?

将matplotlib.pyplot导入为plt 将matplotlib.image导入为mpimg

[tel]

1 个答案:

答案 0 :(得分:0)

读取图像时,您将获得一个numpy尺寸数组(宽x高x [R,G,B,alpha])。

t = mpimg.imread("path/Test1.PNG")

现在,您可以通过沿宽度和高度尺寸(用“:”指示)以及RGB,alpha堆栈中的第3个尺寸取所有值来访问蓝色层。这将为您提供一个2D数组,其中每个蓝色像素都有一个非零值。要查找非零条目的所有坐标,可以使用np.nonzero函数,该函数将它们的坐标作为X和Y数组

X,Y = np.nonzero(t[:,:,2])