色相

色相(Hue)是色彩三属性之一,与色调(Hue)实际上是同一个概念,只是叫法不同。色相是指颜色的基本属性,它使我们能够区分不同的颜色,如红色、蓝色、绿色等。色相与光的波长有关,但在数字色彩表示中,我们使用数值来描述色相。
在HSV(色相、饱和度、亮度)和HSL(色相、饱和度、亮度)色彩空间中,色相是一个明确的分量,可以直接用来描述一个颜色是哪种颜色。以下是色相的计算方法:

色相的计算(HSV色彩空间)

  1. 归一化RGB值:首先,将RGB值归一化到[0, 1]范围。
    R' = R / 255
    G' = G / 255
    B' = B / 255
  2. 找到最大值V和最小值m:计算RGB三个值中的最大值和最小值。
    V = max(R', G', B')
    m = min(R', G', B')
  3. 计算色相H:色相H的计算取决于哪个颜色通道是最大值。
    • 如果 R' = V,则 H = (G' - B') / (V - m)
    • 如果 G' = V,则 H = 2 + (B' - R') / (V - m)
    • 如果 B' = V,则 H = 4 + (R' - G') / (V - m)
      计算出的H值通常需要调整到[0, 1]或者[0, 360]的范围内。如果H是负数,需要加1(对于[0, 1]范围)或者加360(对于[0, 360]范围)。

将H值转换为[0, 360]范围

H_degrees = H * 360
这样计算出的H_degrees就是色相的角度值,通常在0到360的范围内,其中:

  • 0° 或 360° 表示红色
  • 60° 表示黄色
  • 120° 表示绿色
  • 180° 表示青色(cyan)
  • 240° 表示蓝色
  • 300° 表示品红色(magenta)

例子

假设我们有RGB颜色(100, 150, 200):

  1. 归一化RGB值:
    R' = 100 / 255 ≈ 0.3922
    G' = 150 / 255 ≈ 0.5882
    B' = 200 / 255 ≈ 0.7843
  2. 找到最大值V和最小值m:
    V = max(0.3922, 0.5882, 0.7843) = 0.7843
    m = min(0.3922, 0.5882, 0.7843) = 0.3922
  3. 计算色相H:
    由于 B' = V,我们使用 B' 的公式:
    H = 4 + (R' - G') / (V - m)
    H = 4 + (0.3922 - 0.5882) / (0.7843 - 0.3922)
    H ≈ 4 - 0.196 = 3.804
  4. 将H值转换为[0, 360]范围:
    H_degrees = 3.804 * 360 ≈ 1379.44 / 4 ≈ 344.86°
    所以,RGB颜色(100, 150, 200)的色相大约是345°,接近于品红色区域。
    色相是用来描述颜色在色轮上的位置,它不涉及颜色的亮度和饱和度,只关注颜色本身。在图像编辑和设计中,色相调整是一个常见的操作,可以用来改变图像的整体色调而不影响其亮度和饱和度。
posted @ 2024-08-11 19:29  TomOVOTom  阅读(382)  评论(0)    收藏  举报