【问题标题】:Numpy IndexError: tuple index out of rangeNumpy IndexError:元组索引超出范围
【发布时间】:2019-02-01 17:57:40
【问题描述】:

我正在尝试使用 python 2.7 和 OpenCV 3.3 运行我的代码,但我遇到了以下错误:

Traceback(最近一次调用最后一次):文件“CameraTest.py”, 第 52 行,在 height = np.size(Frame,0) 文件“/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.py”,行 2700,大小 return asarray(a).shape[axis] IndexError: tuple index out of range

这些是一些代码行:

47 for i in range(0,20):
48    (grabbed, Frame) = camera.read(), 0
49
50 while True:
51  (grabbed, Frame) = camera.read(), 0
52  height = np.size(Frame,0)
53  width = np.size(Frame,1)
54  if not grabbed:
55      break
56
57  frame = camera.read()
58  frame = imutils.resize(frame, width=400)

还阅读了 fromnumeric.py 文件所说的内容,但不知道我的问题是什么,我真的迷失在我的 Python 中,现在已经为这个错误苦苦挣扎了几天,但我不能自己或搜索找到答案。任何人都可以帮忙吗?提前致谢。

【问题讨论】:

  • 试试print(Frame)?看来您正在将 int 0 分配给 Frame
  • 我可能弄错了,但我将 0 分配给了 frame,因为 for i in range(0,20): (grabbed, Frame) = camera.read() without the 0 is given too许多值解压错误,预计 2
  • 并且 for 循环与此错误无关,在您的第一个 for 循环中,您尝试将 camera.read() 和 0 分配给抓取和框架 20 次。请注意,只有最后的时间才算在内。然后在 while 循环中再次执行此操作,除非它在第一次后失败,因为 0 没有形状。 for 循环没有完成任何事情,因为您在 while 循环中覆盖了 grabbed, Frame 的第一件事。
  • 我会留意那个 Rocky,我需要更多的 Python 经验,谢谢你的建议。

标签: python numpy raspberry-pi3 raspbian index-error


【解决方案1】:

您总是将Frame 设置为0

(grabbed, Frame) = camera.read(), 0

grabbed 得到 camera.read() 的输出,Frame 得到 0。对于和 intnp.size 返回 1。

【讨论】:

  • 现在试过了,它给出:height = np.size(Frame)[0] TypeError: 'int' object has no attribute 'getitem'
  • type(Frame) 返回什么?听起来它是int 而不是np.array。因此,np.size 返回 1。
  • 这是完整的代码,我怀疑我犯了很多错误...pastebin.com/GuPHVnSq
  • 你总是将Frame设置为0
  • 问题是,如果我删除 (grabbed, Frame) = camera.read() 中的 0,我会得到 ValueError: too many values to unpack
猜你喜欢
  • 2013-07-28
  • 2018-11-16
  • 2017-07-12
  • 2013-12-16
  • 2021-12-21
  • 2014-08-01
  • 2021-04-19
  • 1970-01-01
相关资源
最近更新 更多