Opencv TypeError: points n'est pas un tableau numpy, ni un scalaire

En gros, j'ai ce code qui détecte les changements de contexte et enfermé. Lorsque j'exécute le code, j'obtiens cette erreur:

Traceback (most recent call last):
  File "cam2.py", line 28, in <module>
    vertices = cv2.boundingRect(list(contours))
TypeError: points is not a numpy array, neither a scalar

Code:

import cv2
import numpy as np
c = cv2.VideoCapture(0)
_,f = c.read()
avg1 = np.float32(f)
while(1):
_,f = c.read()
cv2.accumulateWeighted(f,avg1,0.1)
res1 = cv2.convertScaleAbs(avg1)
absdiff = cv2.absdiff(f,res1)
graydiff = cv2.cvtColor(absdiff, cv2.COLOR_BGR2GRAY)
retval, mask = cv2.threshold(graydiff, 50,255,cv2.THRESH_BINARY) 
mask = cv2.dilate(mask, None, 18)
mask = cv2.erode(mask, None, 10) 
contours = cv2.findContours(mask, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) #not right
while contours:
vertices = cv2.boundingRect(list(contours))
interest = vertices
point1 = (interest[0], interest[1])
point2 = (interest[0] + interest[2], interest[1] + interest[3])
cv2.rectangle(f, point1, point2, cv2.RGB(255,0,0), 1)
cv2.rectangle(mask, point1, point2, cv2.RGB(255,255,255), 1)
contours = contours.h_next()
cv2.imshow('mask',mask)
cv2.imshow('img',f)
cv2.imshow('avg1',res1)
k = cv2.waitKey(20)
if k == 27:
break
cv2.destroyAllWindows()
c.release()

Comment puis-je résoudre ce problème? Merci.

  • Avez-vous le suivi de votre code!? Quelle était la valeur de la contours liste?
  • la valeur est un très long tableau heres un extrait de: [[ 995, 1018]], [[ 995, 1019]], [[ 995, 1020]], [[ 995, 1021]],
  • Il semble que vous avez 4 contours de chacun d'entre eux contient qu'un point!?
  • Alors, comment serait d'obtenir plusieurs points à la place?
  • Pouvez-vous partager votre image?
  • il l'habitude de la sortie de quelque chose en raison de l'erreur
  • Hmm, Êtes-vous sûr que votre lecture image n'est pas vide?
  • Oui, parce que je m'en souviens de travail avant que je gênais ajoutant les contours des trucs

InformationsquelleAutor roasstbeef | 2014-04-15