【问题标题】:tuple index out of range / int object is not iterable元组索引超出范围/ int 对象不可迭代
【发布时间】:2017-09-28 19:08:03
【问题描述】:

出现以下问题: 我正在尝试检测面部并使用特定索引值调用函数

 faces = face_cascade.detectMultiScale(gray, 1.3, 5)
            facesCopy = faces
            print("faces at 0")
            print(faces)
            if(len(faces) >= 1):
            for (i) in range(len(faces)):
                  #call function with values of faces at specific index(i)
                  detectFace(self, faces[i])

faces 返回:[[247 101 237 237]] facesCopy 一样,但是 faces[i] 返回 [247 101 237 237]

如何获得内部数组? faces[0] 返回超出范围的整数 或者在 for 循环 int 对象中返回的 faces[0][0] 或 [0][0][0][0] 的任何变体都是不可迭代的:

for (x,y,w,h) in faces[0]:#do stuff

我错过了什么或盲目地看到了什么? 我猜它与打包数组有关? 这些值是面部的 x 和 y 位置以及宽度和高度。 感谢您的任何帮助或建议

【问题讨论】:

  • 您的问题得到答案了吗?

标签: python range out


【解决方案1】:

detectMultiScale 返回一个矩形列表。

[[247 101 237 237]] 将是一个单一的,就像在一个具有一个矩形/数组的数组中一样。

for face in faces:
    print(face)

输出:

[247, 101, 237, 237]

如果要将数组解包成变量:

x, y, w, h = face

我不确定detectFace 需要思考哪些论点。

如果你只想要第一个矩形,只需通过索引访问它:

faces[0]

【讨论】:

  • 抱歉,回复晚了!但是,是的,这很有帮助!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 2021-03-02
  • 2018-11-16
  • 2016-04-04
  • 2020-06-08
  • 2017-07-12
相关资源
最近更新 更多