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

问题描述 投票:0回答:1

有人知道如何修复这行代码吗:

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

执行时出现此错误:

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

所需模块:cv2、numpy
我的Python版本是:2.7.14

python numpy opencv
1个回答
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]])
© www.soinside.com 2019 - 2024. All rights reserved.