python - 将 png 图像传递给 numpy 数组,第四列最后一个维度是多少?

标签 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 个 channel reshape png,这对我不起作用。我不得不使用 4。

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

我可以想象红色 channel :

ImR=Im[:,:,0]

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

我设法删除它:

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

现在:

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

我可以像删除第四列之前一样可视化图像

我的问题是:PNG 中的第四列有什么用?

最佳答案

如果 PNG 有 Alpha channel ,则第四列将为 Alpha。由于可视化该 channel 为您提供了全白色,因此所有 alpha 都是 maxval(如果您的样本是 8 位,则为 255),这意味着所有像素都是不透明的。

关于python - 将 png 图像传递给 numpy 数组,第四列最后一个维度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42770899/

相关文章:

Python, Mysql, Insert rows 不出现在数据库中

ios - 将 Codable 结构编码为 JSON 后如何存储数据

python - 如何在 numpy 二维数组中存储列表?

python - numpy fromfile(count = -1) 在 Mac OS 上返回零数组以获得巨大的文件大小

再次使用 Python 正则表达式 - 匹配 URL

python - 在 Python 中使用 paramiko 生成 SSH key 对

python - 在 Python 中插入 MySQL 时出现 UnicodeEncodeError

c - 将一维数组作为二维数组访问

c++ - 删除、释放或取消分配?

python - 如何检索 NumPy 随机数生成器的当前种子?