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

检查变量是否为无,但如果只有一个对象/数组则让其通过

检查变量是否为无,但如果只有一个对象/数组则让其通过

慕运维8079593 2022-06-22 17:21:44
我使用 cv2 库来检测图像上的对象。此函数circles = cv2.HoughCircles(..)可以返回None或在图像上找到的圆数组。我发现的问题是检查是否找到了一个圆圈。这可能是因为:circles - 找到的圆的输出向量。每个向量都被编码为一个 3 元素浮点向量 (x, y, radius)那么如何检查这个函数是返回 3 个圆还是只返回 1 个圆(并且它有 3 个值)?如果没有找到圆圈,我的检查就有效,然后我得到一个错误。代码:circles = cv2.HoughCircles(..)if circles != None:    if circles.any():        #DOSOMETHING在线错误if circles != None::ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()为什么这甚至是错误而不是警告?问题:如何通过圆数组或单个圆传递?我如何在里面区分它们?
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您还可以在PEP 8上看到,检查对象是否存在的推荐方法None如下:


if circles is not None:

    if len(circles) == 3:

        # DOSOMETHING

    else:

        # DOSOMETHING

要检查数组是否circles正好包含 3 个元素,您只需要查看它的长度。


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

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