В качестве быстрого примера:
import Image
import numpy as np
im = Image.open('temp.png')
data = np.array(im)
flattened = data.flatten()
print data.shape
print flattened.shape
Это дает:
(612, 812, 4)
(1987776,)
В качестве альтернативы, вместо вызова data.flatten()
, вы можете позвонить data.reshape(-1)
.-1
используется в качестве заполнителя для «выяснения, каким должно быть данное измерение».
Обратите внимание, что это даст вектор (flattened
) r0, g0, b0, r1, g1, b1, ... rn, gn, bn
, в то время как вам нужен вектор r0, r1 ... rn, b0, b1, ... bn, g0, g1, ... gn
.
Чтобы получить именно то, что вы хотите, просто позвоните
flattened = data.T.flatten()
вместо.