Это должно дать тот же результат, что и ваша image_array
функция:
def image_array(filename):
x = cv2.imread(filename)
x = cv2.resize(x, (224, 224))
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
npfeatures = np.array(x)
return npfeatures
Теперь, если вы хотите иметь одноканальное изображение, т.е. (224, 224) вместо (224, 224,3), просто используйте cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
.
. И если вы хотите, чтобы оно было (224, 224, 3), но выглядело серым, то есть с равными всеми тремя компонентами цвета, используйте
x = cv2.imread(filename, cv2.IMREAD_GRAYSCALE)
x = cv2.resize(x, (224, 224))
x = np.tile(np.expand_dims(x, 2), 3)