我应该使用什么样的面具来获取所有绿色像素?

时间:2018-03-19 15:11:56

标签: python opencv

我正在尝试在youtube教程中看到的代码(我在上面的Github链接中指定了它)。我看到有两个蒙版应用,但我尝试了几个RGB值,我仍然不能得到更亮的绿色像素(暴露在更多光线下)。我想知道我的代码应该应用哪些掩码,如何在任何给定的颜色提取中判断哪一个是好的。

   image_blur = cv2.GaussianBlur(image, (7, 7), 0)
   #t unlike RGB, HSV separates luma, or the image intensity, from
   # chroma or the color information.
   #just want to focus on color, segmentation
   image_blur_hsv = cv2.cvtColor(image_blur, cv2.COLOR_RGB2HSV)

   # Filter by colour
   # 0-10 hue
   #minimum red amount, max red amount
   min_green = np.array([36, 0, 0])
   max_green = np.array([70, 255,255])
   #layer
   mask1 = cv2.inRange(image_blur_hsv, min_green, max_green)

   #birghtness of a color is hue
   # 170-180 hue
   min_green2 = np.array([188,0,0])
   max_green2 = np.array([208,243,139])
   mask2 = cv2.inRange(image_blur_hsv, min_green2, max_green2)

   #looking for what is in both ranges
   # Combine masks
   mask = mask1 + mask2

这是我到Github的链接,您可以在其中找到图片和整个代码: https://github.com/andreyy03/PlantsRecognition

谢谢!

1 个答案:

答案 0 :(得分:0)

你只是尝试过“完美过滤器”之类的东西。几个月前我已经制作了一个工具来做到这一点。虽然我很确定那里有更好的,但this可以做到这一点,并帮助你选择范围/ s。当然它并不完美。希望它有所帮助。

您可以像python tool.py name_of_your_image.jpg一样使用它,也可以在安全python tool.py path/to/your/secuence中使用它,尽管您必须在第二种形式中稍微使用代码。