为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复 OpenCV Numpy 错误,对象不可迭代

如何修复 OpenCV Numpy 错误,对象不可迭代

斯蒂芬大帝 2021-12-16 16:35:16
我正在按照指南开发运动检测安全源,但遇到了问题。本教程的作者没有问题,但我有。'''完整代码可以在这里找到:https : //github.com/ncorbuk/Python-Motion-Detection-system/blob/master/motion_detection.py '''我已经尝试了添加的选项," for c in cnt or []: " - 这让我进一步运行应用程序,在那里我可以看到相机屏幕,但是一旦检测到运动,应用程序就会崩溃并提供以下 numpy 错误:包含多个元素的数组的真值是不明确的。使用 a.any() 或 a.all()for c in cnt:        if (cv2.contourArea(c) > 800):             (x, y, w, h) = cv2.boundingRect(c)            cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 255, 0), 2)             text = 'Occupied'        else:            pass预期输出(如果您有网络摄像头);当检测到运动时,一个绿色矩形将跟随移动的像素并实时将模式从“未占用”更改为“已占用”;没有错误。
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

在 Opencv4.0 中,findContour()只返回 2 个值,contours并且hierachy. 所以在第 57 行motion_detection.py你必须改变

cnt = cv2.findContours(dilate_image.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[1]

cnt = cv2.findContours(dilate_image.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0].


查看完整回答
反对 回复 2021-12-16
  • 1 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信