将 png 图像传递给 numpy 数组,第四列最后一维是多少?
Passing a png image to a numpy array, what is the 4th column last dimension?
我将 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 列是什么?
如果 PNG 有 alpha 通道,第四列将是 alpha。由于可视化该通道给你全白,所有的 alpha 都是 maxval(如果你的样本是 8 位,则为 255)这意味着所有像素都是不透明的。
我将 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 列是什么?
如果 PNG 有 alpha 通道,第四列将是 alpha。由于可视化该通道给你全白,所有的 alpha 都是 maxval(如果你的样本是 8 位,则为 255)这意味着所有像素都是不透明的。