如何加载图像的RGB矩阵。基本上,如果我有一个224x224图像(灰度),我需要它的RGB矩阵,所以我想要一个由3个元素元组组成的224x224矩阵。我试过了:
f="/path/to/grayscale/image"
image = Image.open(f)
new_width = 224
new_height = 224
im = image.resize((new_width, new_height), Image.ANTIALIAS)
im=np.array(im)
print(im)
并打印:
[[195 195 195 ..., 101 104 105]
[195 195 195 ..., 102 105 106]
[194 194 194 ..., 104 109 111]
...,
[137 138 140 ..., 209 207 206]
[133 134 136 ..., 209 207 206]
[132 133 135 ..., 209 207 206]]
经过一些测试,我意识到这是因为图像是灰度的。如何加载灰度图像的RGB矩阵?
答案 0 :(得分:3)
我对PIL并不擅长,但看起来有一种image.Convert("RGB")
方法可能会或可能不会起作用,所以试一试。
但是,如果您打算继续使用np.array
,则以下内容将起作用:
im=np.array(im)
imRGB = np.repeat(im[:, :, np.newaxis], 3, axis=2)
基本上它将输入np.array
重复为第3个新轴,3次。
imRGB[:,:,0]
是红色频道
imRGB[:,:,1]
是绿色频道
imRGB[:,:,2]
是蓝色频道