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

使用OpenCV跟踪绿点无法匹配合适HSV颜色范围求指导

绿点跟踪的HSV颜色范围调整方案

你当前使用的HSV范围参数不合适且区间过窄,针对图中的亮绿色点,建议调整为以下范围:

import numpy as np

# 适配目标绿点的HSV范围
lower_green = np.array([40, 80, 180])
upper_green = np.array([70, 255, 255])

调整原因:

  • 原H值区间仅5(60-65),容错性极差,实际亮绿色的H值通常在40-70区间内波动
  • 原S值下限设为200过高,图中绿点的饱和度并没有这么高,降低到80能覆盖更多颜色偏差情况
  • V值下限调整为180,能更精准锁定高亮的绿点,避免误识别其他暗绿色区域

如果还是存在偏差,可以用OpenCV的交互式工具校准HSV范围,代码如下:

import cv2
import numpy as np

def nothing(x):
    pass

# 创建校准窗口
cv2.namedWindow('HSV Calibrator')
cv2.createTrackbar('H Lower', 'HSV Calibrator', 0, 179, nothing)
cv2.createTrackbar('H Upper', 'HSV Calibrator', 179, 179, nothing)
cv2.createTrackbar('S Lower', 'HSV Calibrator', 0, 255, nothing)
cv2.createTrackbar('S Upper', 'HSV Calibrator', 255, 255, nothing)
cv2.createTrackbar('V Lower', 'HSV Calibrator', 0, 255, nothing)
cv2.createTrackbar('V Upper', 'HSV Calibrator', 255, 255, nothing)

# 读取目标图片(替换为你的图片路径)
img = cv2.imread('nFBIs.png')
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

while True:
    # 获取滑块参数
    h_low = cv2.getTrackbarPos('H Lower', 'HSV Calibrator')
    h_high = cv2.getTrackbarPos('H Upper', 'HSV Calibrator')
    s_low = cv2.getTrackbarPos('S Lower', 'HSV Calibrator')
    s_high = cv2.getTrackbarPos('S Upper', 'HSV Calibrator')
    v_low = cv2.getTrackbarPos('V Lower', 'HSV Calibrator')
    v_high = cv2.getTrackbarPos('V Upper', 'HSV Calibrator')
    
    # 生成遮罩并显示结果
    lower = np.array([h_low, s_low, v_low])
    upper = np.array([h_high, s_high, v_high])
    mask = cv2.inRange(img_hsv, lower, upper)
    result = cv2.bitwise_and(img, img, mask=mask)
    
    cv2.imshow('Mask', mask)
    cv2.imshow('Result', result)
    
    # 按q退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cv2.destroyAllWindows()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:12:39