我有一个包含32x32 RGB图像的pickle训练数据集。作为一个预处理步骤,我想把它们转换成灰度。
我在训练数据集里读到-import pickle
import cv2
training_file = "../data/train.p"
with open(training_file, mode='rb') as f:
train = pickle.load(f)
X_train, y_train = train['features'], train['labels']
然后,我尝试使用for循环,使用以下代码将每个图像转换为灰度-
^{pr2}$
但这引发了以下错误----------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in ()
1 for i in range(0,len(X_train)-1):
----> 2 X_train[i] = cv2.cvtColor(X_train[i], cv2.COLOR_BGR2GRAY)
ValueError: could not broadcast input array from shape (32,32) into shape (32,32,3)
但是,如果我只使用一个图像重复这个过程,我不会得到任何错误。我做了以下事情-
有人能解释一下错误的原因吗?我怎样才能把整个列表转换成灰度?在