>백엔드 개발 >C++ >0-255 범위 내에서 RGB를 HSV로, HSV를 RGB 값으로 변환하는 방법은 무엇입니까?

0-255 범위 내에서 RGB를 HSV로, HSV를 RGB 값으로 변환하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-10 10:20:15985검색

How to Convert RGB to HSV and HSV to RGB Values within a 0-255 Range?

범위 0-255에서 RGB를 HSV로, HSV를 RGB로 변환하는 알고리즘

RGB 색상을 변환하기 위한 색 공간 변환 알고리즘이 제시됩니다. 값을 HSV로 변환하거나 그 반대로 변환하여 두 색상 공간 모두에서 0~255 범위를 유지합니다. 작동 방법은 다음과 같습니다.

RGB에서 HSV로 변환(rgb2hsv)

RGB 값(r, g, b)을 HSV(h, s, v)로 변환하려면:

  1. r, g, 중 최소값과 최대값을 구합니다. b.
  2. 값 구성요소(v)를 최대값으로 계산합니다.
  3. 포화 구성요소(s)를 v에 대한 (v - 최소값)의 비율로 계산합니다.
  4. 색상 구성요소(h) 결정:

    • r이 최대이면 h는 (g - b) / (v - 최소값)으로 계산됩니다.
    • g가 최대값인 경우 h는 2.0(b - r) / (v - 최소값)입니다.
    • b인 경우 는 최대이고, h는 4.0(r - g) / (v - 최소값)입니다.
  5. h 각도를 다음으로 변환합니다. 도.
  6. h가 음수이면 360도를 더합니다.

HSV를 RGB로 변환(hsv2rgb)

HSV 값(h, s, v)을 변환하려면 RGB(r, g, b)로:

  1. s가 0인 경우 설정합니다. r, g, b를 v로.
  2. 그렇지 않으면 hh의 색상각 분율(hh)과 바닥(i)을 계산합니다.
  3. 값 p=v⋅(1− s), q=v⋅(1−s⋅(1−hh)) 및 t=v⋅(1−s⋅hh).
  4. i를 기준으로 r, g, b에 값을 할당합니다.

    • 사례 0: r=v , g=t, b=p
    • 사례 1: r=q, g=v, b=p
    • 사례 2: r=p, g=v, b=t
    • 사례 3: r=p, g=q, b=v
    • 사례 4: r=t, g=p, b=v
    • 사례 5: r=v, g=p, b=q

이러한 기능을 사용하면 RGB와 HSV 색상 공간 간의 효율적이고 정확한 변환이 가능하며, 이는 색상 조작 및 이미지 처리와 관련된 애플리케이션에 필수적입니다.

위 내용은 0-255 범위 내에서 RGB를 HSV로, HSV를 RGB 값으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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