許虎虎 開發者工具集

RGB 轉 HSV

R: G: B:

H: S: V:
RGB 轉 HSV

將 RGB 顏色轉換為 HSV 顏色模型,通常涉及以下的步驟。HSV模型描述的是色調(Hue)、飽和度(Saturation)和亮度(Value),而RGB模型描述的是紅色(Red)、綠色(Green)和藍色(Blue)三個色光通道。

步驟 1:將RGB值標準化
首先,將RGB值從0到255範圍轉換到0到1範圍。這樣可以幫助簡化計算。

R' = R / 255
G' = G / 255
B' = B / 255
步驟 2:計算最大和最小RGB值
計算紅色、綠色和藍色的最大和最小值。

max = max(R', G', B')
min = min(R', G', B')
步驟 3:計算色調H (Hue)
色調H的計算基於最大RGB值,並且對應於顏色的位置(0° 到 360°)。

如果 max = min,那麼顏色為灰色,H = 0°。
如果 max = R',則 H = 60° * ((G' - B') / (max - min))。
如果 max = G',則 H = 60° * ((B' - R') / (max - min)) + 120°。
如果 max = B',則 H = 60° * ((R' - G') / (max - min)) + 240°。
計算出H之後,如果H為負數,則加360°,使其範圍在0°到360°之間。

步驟 4:計算飽和度S (Saturation)
飽和度S表示顏色的純度,計算公式如下:

如果 max = 0,則 S = 0,表示顏色為灰色。
否則,S = (max - min) / max。
步驟 5:計算亮度V (Value)
亮度V是RGB值中的最大值:

V = max
範例:RGB = (255, 87, 51)
讓我們將RGB顏色 (255, 87, 51) 轉換為HSV。

步驟 1:將RGB標準化
R' = 255 / 255 = 1
G' = 87 / 255 ≈ 0.341
B' = 51 / 255 ≈ 0.2
步驟 2:計算最大和最小RGB值
max = max(1, 0.341, 0.2) = 1
min = min(1, 0.341, 0.2) = 0.2
步驟 3:計算色調H
max = R' = 1
H = 60° * ((G' - B') / (max - min)) = 60° * ((0.341 - 0.2) / (1 - 0.2)) ≈ 60° * (0.141 / 0.8) ≈ 60° * 0.17625 ≈ 10.58°
步驟 4:計算飽和度S
S = (max - min) / max = (1 - 0.2) / 1 = 0.8
步驟 5:計算亮度V
V = max = 1
結果:
所以,RGB顏色 (255, 87, 51) 對應的 HSV 顏色為:

H ≈ 10.58°
S = 80%
V = 100%
總結:
RGB轉HSV的過程包括將RGB顏色的每個通道值標準化,然後計算色調、飽和度和亮度。HSV顏色模型更能直觀表達顏色的感覺,特別適合用於設計和顏色調整。