복붙노트

[PYTHON] 이미지에서 녹색 색상 객체 만 감지하는 임계 값을 정의하는 방법 : Opencv [duplicate]

PYTHON

이미지에서 녹색 색상 객체 만 감지하는 임계 값을 정의하는 방법 : Opencv [duplicate]

자연 환경에서 촬영 한 이미지에서 녹색 물체 만 감지하고 싶습니다. 정의 방법은 무엇입니까? 여기에서는 임계 값을 전달하기 위해 'x'라고 쓰고 싶습니다.이 x를 사용하여 하나의 색상 (흰색) 만 녹색 색상의 오브젝트를 얻고 싶습니다. 다른 색상은 다른 색상 (검정색)으로 나타나야합니다. 제발 나를 안내 해줘. 미리 감사드립니다.

해결법

  1. ==============================

    1.최신 정보:

    최신 정보:

    HSV 색상 표를 만듭니다. 이전보다이 맵을 사용하여 색상 범위를 찾는 것이 더 쉽고 정확합니다.

    그리고 어쩌면 녹색을 찾기 위해 hsv에서 (40, 40,40) ~ (70, 255,255)의 사용을 변경해야합니다.

    원문 답변 :

    이 해바라기의 범위는 (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,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)
    
  2. from https://stackoverflow.com/questions/47483951/how-to-define-a-threshold-value-to-detect-only-green-colour-objects-in-an-image by cc-by-sa and MIT license