Как определить пороговое значение для обнаружения только объектов зеленого цвета в изображении: Opencv

Я просто хочу обнаружить только зеленые объекты из изображения, которое было захвачено в естественной среде. Как его определить? Потому что здесь я хочу передать пороговое значение, скажем, «x», используя этот x, я хочу, чтобы объекты только зеленого цвета были в одном цвете (белые), другие должны отображаться в другом цвете (черный). это. заранее спасибо.

Обновление :

Я делаю HSV пакет HSV . more easy and accurate найти диапазон цветов, используя эту карту, чем раньше.

И, может быть, я должен изменить использование (40, 40,40) ~ (70, 255,255) in hsv чтобы найти green .

введите описание изображения здесь


Оригинальный ответ :

  1. Преобразуйте в цветовое пространство HSV ,
  2. Используйте 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,0,0) ~ (70, 255,255) mask = cv2.inRange(hsv, (36, 0, 0), (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) 
Давайте будем гением компьютера.