我只想检测自然环境中捕获的图像中的绿色物体。如何定义它?因为在这里我想要通过阈值让我们说'x',通过使用这个x我想只获得一种颜色的绿色对象(白色)其他必须出现在另一种颜色中颜色(黑色) 请指导我这样做。提前谢谢。
答案 0 :(得分:21)
更新:
我制作了HSV
色彩图。它more easy and accurate
使用此地图查找颜色范围。
也许我应该更改使用(40, 40,40) ~ (70, 255,255) in hsv
来查找green
。
原始回答:
HSV
色彩空间cv2.inRange(hsv, hsv_lower, hsv_higher)
获取绿色遮罩。 我们对此the range (in hsv)
使用(36,0,0) ~ (86,255,255)
:sunflower
。
源图片:
蒙面绿色区域:
更多步骤:
核心源代码:
import cv2
import numpy as np
## Read
img = cv2.imread("sunflower.jpg")
## convert to hsv
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
## mask of green (36,25,25) ~ (86, 255,255)
# mask = cv2.inRange(hsv, (36, 25, 25), (86, 255,255))
mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255))
## slice the green
imask = mask>0
green = np.zeros_like(img, np.uint8)
green[imask] = img[imask]
## save
cv2.imwrite("green.png", green)
类似: