【问题标题】:Detecting Green Colour from Image - CV2 Python从图像中检测绿色 - CV2 Python
【发布时间】:2022-07-12 14:31:59
【问题描述】:

我正在尝试从图像中检测绿色,为此我使用 cv2,通过将绿色的上限和下限定义为 [40, 0, 0][90, 255, 255],效果很好,

但是,当我测试这个image 时,我也检测到了白色区域,输出为mask image,预期的掩码输出仅为黑色

代码是

frame = cv2.imread('img.jpg')
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower = np.array([40, 0, 0])
upper = np.array([90, 255, 255])
mask = cv2.inRange(hsv, lower, upper)
res = cv2.bitwise_and(frame,frame, mask= mask)
cv2.imshow('mask',mask)

为什么绿色的上下界会检测到输入图像中的白色区域,有没有其他方法可以只检测到图像中的绿色

谢谢

【问题讨论】:

    标签: python opencv computer-vision scikit-image


    【解决方案1】:

    这是可以在这张图片中找到的颜色。

    “你的”绿色在哪里?

    【讨论】:

    • 你用什么方法来得到这张图片?
    • @vishakraj:获取色调值。
    【解决方案2】:

    您遇到的问题是因为颜色 [50,0,255](在您的范围内)是白色,如 here 所示。 (在这张图片中,色调除以 2,饱和度和值乘以 2.55。)

    如果你只想要绿色,你应该像下面这样设置你的限制: 降低 [40,70,120] 上 [90,255,255] 这样,您就可以确保在您的程序中不会选择色调介于 40 到 90 之间的白色和黑色。

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2017-06-09
      • 2022-07-02
      • 2015-10-13
      • 2020-08-19
      相关资源
      最近更新 更多