Как добавить numpy массивов в python? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть такой массив numpy, который я хочу использовать для рисования на изображении.

points = np.array([[100, 140], [150, 235], [697, 300]], np.int32)
cv2.polylines(img, [points], 1, (255,255,255))

Подскажите, пожалуйста, как мне добавить этот массив numpy с большим количеством точек? ? Я пробовал этот способ, но после этого полилинии не работают.

points = np.append(points, [333,111])

Я получаю следующую ошибку: "(-215: Утверждение не удалось) p.checkVector (2, CV_32S)> = 0 в функции 'резюме :: полилинии' "

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Вам не хватает numpy.append третьего аргумента, который равен axis и указывает ось, вдоль которой добавляются значения. Если не предоставлено, оба массива перед использованием сглаживаются.

Так что вы, вероятно, хотите это:

np.append(points, [[333, 111]], axis=0)

Что даст вам следующее:

array([[100, 140],
       [150, 235],
       [697, 300],
       [333, 111]])

Возможно, вы Интересно, почему двойные квадратные скобки в [[333, 111]], и это потому, что размеры обоих массивов должны совпадать, как указано в документации.

1 голос
/ 04 мая 2020

Вы хотите получить это?

[[100,140],
[150,235],
[697,300],
[333,111]]

попробуйте vstack:

b = np.array( [  [333,111]   ] )
result = np.vstack (  (points,b)  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...