Вы будете использовать только первое значение пикселя, если вы выполните следующее.
features.append(img[0][0])
Попробуйте это!
import numpy as np
features.append(np.array(img).flatten())
Пожалуйста, проверьте размерность данных, которые вы добавляете, чтобы знать, что на самом деле происходит.
print(np.array(img).flatten().shape)