>백엔드 개발 >파이썬 튜토리얼 >cv::inRange를 사용하여 객체 감지를 위한 HSV 색상 경계를 효과적으로 결정하는 방법은 무엇입니까?

cv::inRange를 사용하여 객체 감지를 위한 HSV 색상 경계를 효과적으로 결정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-02 01:56:09539검색

How to Effectively Determine HSV Color Boundaries for Object Detection using cv::inRange?

cv::inRange(OpenCV)를 사용하여 객체 감지를 위한 색상 경계 선택

색상 감지를 위해 cv::inRange 함수를 활용하는 경우, 적절한 상한 및 하한 HSV 경계를 선택하는 것이 중요합니다. 이 기사에서는 특정 관심 색상을 기반으로 이러한 경계를 효과적으로 결정하는 방법에 대한 질문을 다룹니다.

배경

HSV(Hue, Saturation, Value)는 색상입니다. 영상 처리에 흔히 사용되는 공간. HSV 모델은 색상을 세 가지 구성 요소로 나타냅니다.

  • 색상(H): 색상(예: 빨간색, 파란색)을 나타냅니다.
  • 채도(S): 색상의 정도를 측정합니다. 그늘에 존재하는 색(0~1).
  • 값(V) : 색의 밝기를 나타냅니다. (0-255).

경계 선택

적절한 HSV 경계를 결정하는 것은 감지되는 특정 색상을 기반으로 합니다. 단계별 가이드는 다음과 같습니다.

  1. 색상 결정:

    • 색상 선택 도구를 사용하여 색상의 HSV 값을 식별합니다. 관심 대상입니다.
    • 다음에 따라 HSV 값에 다른 척도가 사용될 수 있습니다.
  2. 색상 범위 조정:

    • 식별된 영역 주변의 범위를 조정하여 색조의 약간의 변화를 설명합니다. 값입니다.
    • 예를 들어 색상이 22(179 중)인 경우 범위는 (11-33)이 적절할 수 있습니다.
  3. 채도 및 값 범위 설정:

    • 합리적인 범위 사용 채도(예: 50-255).
    • 값을 선택하려면 물체의 예상 밝기가 포함된 범위를 선택하세요.
  4. 형식을 고려하세요.

    • HSV 변환은 이미지 형식에 적합합니다.
    • 예를 들어 OpenCV는 RGB가 아닌 BGR을 사용합니다. 이미지 표현을 위해.

이미지에서 주황색 덮개를 감지하는 예를 생각해 보겠습니다.

  1. HSV 값:

    • 색상 선택기를 사용하여 (22, 59, 100)의 HSV 값을 얻습니다.
  2. 조정됨 경계:

    • 색상 범위: (11-33)
    • 채도 범위: (50-255)
    • 값 범위: (50-255)
  3. 파이썬 코드:

    import cv2
    import numpy as np
    
    ORANGE_MIN = np.array([11, 50, 50], np.uint8)
    ORANGE_MAX = np.array([33, 255, 255], np.uint8)
    
    # Read and convert image
    img = cv2.imread('image.png')
    hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    
    # Detect orange using inRange
    mask = cv2.inRange(hsv_img, ORANGE_MIN, ORANGE_MAX)
    # Display mask
    cv2.imshow('Mask', mask)
    cv2.waitKey(0)

위 내용은 cv::inRange를 사용하여 객체 감지를 위한 HSV 색상 경계를 효과적으로 결정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.