You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GearsBot的find_blobs()函数用法及黄色块检测失败问题咨询

问题:GearsBot摄像头黄色块检测find_blobs调用无结果

我正在用Python结合GearsBot开发基于摄像头的黄色块检测功能。通过代码得到黄色的HSV范围:

Lower HSV: (50.30769230769232, 42.647058823529406%, 26.27450980392157%)
Upper HSV: (67.27272727272728, 77.77777777777779%, 89.41176470588236%)

随后调用find_blobs()函数检测黄色块:

# 检测色块
blobs = camera_sensor_in6.find_blobs((52, 67, 42, 77, 26, 89), 10)

print(f"检测到的色块数量: {len(blobs)}")

但检测结果始终为0,调整参数也没用。想知道find_blobs()的参数规范是什么?我是不是调用错了?


解答

1. find_blobs的参数规范

GearsBot的find_blobs函数中,HSV阈值参数需遵循**(H_min, H_max, S_min, S_max, V_min, V_max)**的顺序,且各通道取值范围有明确要求:

  • H(色相):0-180
  • S(饱和度)、V(明度):0-255(而非百分比)

2. 你的调用错误点

你传入的S、V值是直接取整后的百分比数值,但实际需要将百分比转换为0-255的整数:

  • S_min: 42.647% → 42.647/100*255 ≈ 109
  • S_max:77.777% → 77.777/100*255≈200
  • V_min:26.274% →26.274/100*255≈67
  • V_max:89.411% →89.411/100*255≈228

另外你将H的上下限取整为52、67,虽接近计算值,但建议保留原范围的下限(50)以覆盖完整的黄色色相区间。

3. 修正后的代码示例

# 转换后的HSV范围(匹配实际参数要求)
blobs = camera_sensor_in6.find_blobs((50, 67, 109, 200, 67, 228), 10)

print(f"检测到的色块数量: {len(blobs)}")

额外调试建议

  • 若仍无检测结果,可适当扩大阈值范围,比如H设为45-70、S设为80-220、V设为50-240,逐步缩小找到最优值
  • 确认摄像头画面中黄色块清晰无遮挡,且镜头对焦正常

内容的提问来源于stack exchange,提问作者Fatimah Altuhaifa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:50:05