gpt4 book ai didi

python - Opencv TypeError : points is not a numpy array, 既不是标量

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:34 25 4
gpt4 key购买 nike

基本上,我有这段代码可以检测背景的变化并将它们装箱。当我运行代码时,出现此错误:

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

代码:

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

我该如何解决这个问题?谢谢。

最佳答案

根据findContour doc 它返回两件事:

cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) → contours, hierarchy

将行更改为:

contours, hierarchy = cv2.findContours(mask, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE) 

这可能行得通!

关于python - Opencv TypeError : points is not a numpy array, 既不是标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23092439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com