в основном найти в

от вопрос уже есть ответ здесь:

OpenCV Android Обнаружение зеленого цвета 1 ответ

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

 jtlz214 дек. 2018 г., 06:44
Другой вопрос, специфичный для Android, не так ли? Этот вопрос помечен как питон.

Ответы на вопрос(1)

Обновить:

Я делаюHSV Colormap. Это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)

Аналогичный:

Выбор правильной верхней и нижней границ ВПГ для определения цвета с помощью `cv :: inRange` (OpenCV)
 S.Am25 нояб. 2017 г., 11:50
Так как я использую python opencv, я использовал значения hsv для bgr как для нижней зеленой области как 50 100 100, так и для верхней зеленой области как 70 255 255, значение hsv для зеленого цвета дано как 60 255 255. Но это не сработало, благодаря этому я получаю только черное изображение.
 Kinght 金25 нояб. 2017 г., 12:04
В моем случае я использую[36 0 0] ~ [ 86 255 255]
 Kinght 金20 янв. 2018 г., 13:31
Почему нет? Если вы посмотрите карту, вы найдетеblue(HSV) в основном найти в(110,150,50) ~ (120,255,255).
 S.Am25 нояб. 2017 г., 13:19
@Silencer спасибо, это работает для меня
 Mark Setchell25 нояб. 2017 г., 11:30
Приятно! Вы хотите поделиться своим кодом?

Ваш ответ на вопрос