Переменная превращается в список, вызывающий ValueError: Use a.any() или a.all () Opencv Python

Я пишу фрагмент кода, который проверит, находится ли ограничивающий прямоугольник, созданный вокруг фигуры, внутри другого фиксированного прямоугольника. Это раздел кода, в котором присутствует ошибка:

rectangle = cv2.rectangle(frame, (150, 50), (450, 400), (0, 255, 0), 2)

if ID != -1:
    cnt = contours[ID]
    x, y, w, h = cv2.boundingRect(cnt)
    cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
    x2 = x+w
    y2 = y+h

if x > 150:
    if y > 50:
        if x2 < 450:
            if y2 < 400:
                print "inside"

N. B предыдущие части кода находят самый большой контур и рисуют вокруг него ограничивающий прямоугольник. Эта часть работает хорошо, я просто подумал, что упомяну ее для некоторого контекста.

Ошибка im получение:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Проблема в том, что программа работает некоторое время, печатая внутри успешно, когда форма находится внутри прямоугольника. Однако через некоторое время программа аварийно завершает работу и отображает сообщение об ошибке.

Из этого я думаю, что переменная xпреобразуется в список по какой-то причине, так как это строка, в которой происходит ошибка.

Кто-нибудь знает, как это исправить? Спасибо.

1 ответ

  1. Как отметили Кевин и Гарет, это была ошибка отступа. когда ID был -1, x не получал никакого значения (то же самое с y, x2, y2).