IndexError: индекс может иметь только один многоточие - PullRequest
0 голосов
/ 27 апреля 2018

Кто-нибудь знает, как исправить эту строку кода:

num = (frame[...,...,2] > 236)

Я получаю эту ошибку при выполнении:

IndexError: an index can only have a single ellipsis ('...')

Вот весь файл: https://pastebin.com/XNzYx6mJ
Для выполнения этой программы вам потребуется веб-камера и некоторые модули для python. Обязательные модули: cv2, numpy
Моя версия на Python: 2.7.14

1 Ответ

0 голосов
/ 27 апреля 2018

Вы должны использовать это:

num = (frame[:,:,2] > 236)

если вы хотите четко указать индексы (если вы пытались вставить несколько эллипсов) или просто использовать один многоточие:

num = (frame[...,2] > 236)

Поскольку многоточие предназначено для использования только один раз, чтобы заменить столько колонов, сколько необходимо (два в вашем случае).

Тест:

>>> frame = np.meshgrid(range(0,4), range(0,2), range(0,3))[0]
>>> frame[:,:,2]
array([[0, 1, 2, 3],
       [0, 1, 2, 3]])
>>> frame[...,2]
array([[0, 1, 2, 3],
       [0, 1, 2, 3]])
...