元组索引超出范围/ int对象是不可迭代的

时间:2017-05-01 10:48:19

标签: python range out

发生以下问题: 我试图检测面部并调用具有特定索引值的函数

Array
(
    [0] => Array
        (
            [A] => BANK
            [B] => IFSC
            [C] => MICR
            [D] => BRANCH
            [E] => ADDRESS
            [F] => CONTACT
            [G] => CITY
            [H] => DISTRICT
            [I] => STATE
        )

)

面孔返回:[[247 101 237 237]] facesCopy相同,但faces [i]返回[247 101 237 237]

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

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

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

1 个答案:

答案 0 :(得分:0)

detectMultiScale返回一个矩形列表。

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

for face in faces:
    print(face)

输出:

[247, 101, 237, 237]

如果要将数组解压缩为变量:

x, y, w, h = face

我不确定detectFace需要考虑哪些参数。

如果您只想要第一个矩形,只需按索引访问它:

faces[0]