массив python cv2 для numpy

Я пытаюсь преобразовать массив изображений cv2 с несколькими строками в одну строку в один массив! Вот мой код:

im =[]
img = cv2.imread('.jpg',0)

 for i in img :

   im.append(np.array(i))

 print (im)   

У меня есть этот результат: [массив ([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255 , 255, 255, 255, 255], dtype=uint8), массив([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Но мне нужен один линейный массив: ['0', '0', '0', '255', '255', '255', '255', '254', '255', '255', '253 ', '255', '254', '255', '254', '255', '254', '254', '255', '255', '255', '255', '255', «255», «255», «255», «253», «253........]

Что я делаю не так?! Может быть, есть какие-то базовые функции для преобразования массива cv2 в один массив?


person TheRutubeify    schedule 25.08.2017    source источник
comment
Что вы ожидали при добавлении массива numpy в список с добавлением? Это базовый питон и базовый numpy! Я рекомендую документы numpy (создание массива, сглаживание,...). Мне также интересно, почему вы хотите это сделать (поскольку позже это будет сложно обработать).   -  person sascha    schedule 26.08.2017
comment
Да, конечно, это была ошибка, я имею в виду - im = np.array, потому что мне нужен один линейный массив для следующих манипуляций! После этого мне нужен 2D-массив с numpy.array(array, ndmin=2).T   -  person TheRutubeify    schedule 26.08.2017
comment
Вы добавляете массив, а не значения массива. Таким образом, ваш список im будет состоять из нескольких массивов numpy. Существует еще один метод numpy для добавления только значений вместо массива: .extend(). Итак, im.extend(i) сделает то, что вы ожидаете. Однако ответ с hstack() гораздо более эффективен (не требует перебора вашего массива в python), поэтому вам обязательно следует его использовать.   -  person alkasm    schedule 26.08.2017


Ответы (1)


person    schedule
comment
Это хороший способ выполнить задачу, которую хотел выполнить OP, но не могли бы вы дать немного больше пояснений к ответу и, возможно, связать некоторую документацию, чтобы OP мог лучше понять, почему это предпочтительнее? - person alkasm; 26.08.2017