我使用 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 个元素,您只需要查看它的长度。
添加回答
举报
0/150
提交
取消