首頁 >後端開發 >C++ >如何將 RGB 轉換為 HSV 以及 HSV 轉換為 RGB 0-255 範圍內的值?

如何將 RGB 轉換為 HSV 以及 HSV 轉換為 RGB 0-255 範圍內的值?

Linda Hamilton
Linda Hamilton原創
2024-12-10 10:20:15987瀏覽

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 - 最小值)。最大,h 為4.0 (r - g) / (v - 最小值)。 360 度。 (hsv2rgb)
    • 轉換HSV 值(h, s, v)轉換為RGB (r, g, b):
  5. 如果s 為零,則設定r、g 和b 到v。 (i)。 .
  6. 基於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
  1. 情況3:r=p,g=q,b=v
  2. 情況4: r=t, g=p, b=v
  3. 情況5: r=v, g=p, b=q
    • 這些函數可以實現RGB 和HSV 顏色空間之間高效、準確的轉換,這對於涉及顏色操作和影像處理的應用程式至關重要。

以上是如何將 RGB 轉換為 HSV 以及 HSV 轉換為 RGB 0-255 範圍內的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn