Skimage rgb2gray缩小了一个维度

时间:2018-01-11 07:56:54

标签: python scikit-image

我正在尝试将多个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)。

我错过了什么点?

1 个答案:

答案 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])])