python - एक छवि में केवल हरे रंग की वस्तुओं का पता लगाने के लिए दहलीज मूल्य को कैसे परिभाषित करें: Opencv



image-processing threshold (1)

अपडेट :

मैं HSV कॉलोर्मैप बनाता हूं। पहले की तुलना में इस मानचित्र का उपयोग करके रंग सीमा को खोजना more easy and accurate है।

और शायद मुझे green को खोजने के लिए (40, 40,40) ~ (70, 255,255) in hsv उपयोग (40, 40,40) ~ (70, 255,255) in hsv को बदलना चाहिए।

मूल उत्तर :

  1. HSV रंग-स्थान में परिवर्तित करें,
  2. ग्रीन मास्क पाने के लिए cv2.inRange(hsv, hsv_lower, hsv_higher) का उपयोग करें।

हम इस sunflower लिए the range (in hsv) उपयोग the range (in hsv) : (36,0,0) ~ (86,255,255)

स्रोत की छवि:

नकाबपोश हरे क्षेत्र:

और कदम:

मुख्य स्रोत कोड:

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)

समान:

  1. `cv :: inRange` (OpenCV) के साथ रंग का पता लगाने के लिए सही ऊपरी और निचले HSV सीमाओं का चयन

इस सवाल का पहले से ही यहाँ एक जवाब है:

मैं बस एक ऐसी छवि से केवल हरी वस्तुओं का पता लगाना चाहता हूं, जो प्राकृतिक वातावरण में कैद हो। इसे कैसे परिभाषित किया जाए? क्योंकि यहाँ में मैं थ्रेशोल्ड वैल्यू पास करना चाहता हूँ, चलो 'x' कहते हैं, इस x का उपयोग करके मैं केवल ग्रीन कलर ऑब्जेक्ट को एक रंग (व्हाइट) में प्राप्त करना चाहता हूँ, दूसरे को दूसरे रंग (ब्लैक) में दिखाई देना चाहिए कृपया मुझे गाइड करें इस। अग्रिम में धन्यवाद।





threshold