Я пытаюсь преобразовать массив изображений 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 в один массив?
im
будет состоять из нескольких массивовnumpy
. Существует еще один методnumpy
для добавления только значений вместо массива:.extend()
. Итак,im.extend(i)
сделает то, что вы ожидаете. Однако ответ сhstack()
гораздо более эффективен (не требует перебора вашего массива в python), поэтому вам обязательно следует его использовать. - person alkasm   schedule 26.08.2017