我正在尝试将多个RGB图像转换为灰度图像。但是,我正在失去一个维度
# img is an array of 10 images of 32x32 dimensions in RGB
from skimage.color import rgb2gray
print(img.shape) # (10, 32, 32, 3)
img1 = rgb2gray(img)
print(img.shape) # (10, 32, 3)
正如你所看到的,尽管img的形状预计为(10,32,32,1),但它的形状为(10,32,3)。
我错过了什么点?
答案 0 :(得分:3)
此function假设输入为dims 3或4的单个图像(带alpha)。
(由于您的输入有4个维度,它被解释为RGB + Alpha的单个图像;而不是3个维度的N个图像)
如果您有多个图像,则需要以某种方式循环,如此(未经测试):
import numpy as np
from skimage.color import rgb2gray
print(img.shape) # (10, 32, 32, 3)
img_resized = np.stack([rgb2gray(img[i]) for i in range(img.shape[0])])