I just want to detect only green objects from an image which captured in natural environment.How to define it? Because in here I want to pass the threshold value let’s say ‘x’, by using this x I want to get only green colour objects in to one colour(white) others are must appear in another colour(black)
Please guide me to do this. thanks in advance.
I make a
HSV colormap. It’s
more easy and accurate to find the color range using this map than before.
And maybe I should change use
(40, 40,40) ~ (70, 255,255) in hsv to find the
- Convert to
cv2.inRange(hsv, hsv_lower, hsv_higher)to get the green mask.
the range (in hsv):
(36,0,0) ~ (86,255,255) for this
The source image:
The masked green regions:
The core source code:
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)