IndexError:索引只能有一个省略号

时间:2018-04-27 06:37:36

标签: python numpy cv2

有人知道如何解决这行代码:

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 :(得分:2)

你应该用这个:

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]])