将png图像传递给numpy数组,第4列的最后一维是什么?

时间:2017-03-13 18:29:36

标签: python arrays numpy png

我将png图像导出到python numpy数组。

import numpy
import Image
import matplotlib.pyplot as plt
 Im=Image.opne('file.png')
 arr=numpy.array(Im).reshape(Im.size[1],Im.size[0],4)
plt.imshow(arr)
plt.show()

现在,在书中我发现使用3个频道重塑png,这对我不起作用。我不得不使用4。

>>> Im.shape
(401, 601, 4)

我可以看到红色频道:

ImR=Im[:,:,0]

类似于绿色和蓝色。最后一个给我一个白色的屏幕。

我设法删除了它:

Im4=Im[:,:,:-1]

现在:

>>> Im4.shape
(401, 601, 3)

我可以在删除第4列之前将图像可视化

我的问题是:PNG的第4栏是什么?

1 个答案:

答案 0 :(得分:3)

如果PNG有alpha通道,第四列将是alpha。由于可视化通道给你全白,所有的alpha都是maxval(如果样本是8位,则为255),这意味着所有像素都是不透明的。