RGB, CMYK, HSV颜色空间简介
- RGB
RGB,R红色,G绿色,B蓝色,适合计算机使用,与人的视觉感知习惯不太相符。SHV(SHB,饱和度S/色度H/亮度B)更符合人的视觉习惯
- CMYK
CMY(K): C青色,M洋红,Y黄色,K黑色。最佳打印模式,相减混色,处理四个通路。RGB和CMY可以相互变换(RGB/CMY归一化到1),但RGB颜色和CMYK颜色不能一一对应,存在黑色部分的替代取值问题
- HSV
HSV对人来说是最直观的颜色模型,H色相,物理意义是光的波长,不同光的波长呈现不同的色相。在HSV模型中,H是光谱颜色在首位相接的颜色环中的角度位置(0~360度),每一种颜色和它的补色相差180度。S是饱和度,S的范围是[0,1],0代表灰色,1代表白光。S的物理意义是一束光可能有很多种不同波长的单色光构成,如果光的波长成分越多,则纯度越低(白光),如果只有单色,则表示色彩的纯度很高。V表示色彩的明亮程度,范围[0,1],增加可以减小V(亮度),增加白色可以减小S(饱和度)。
V=1,S=1是对应于HSV圆锥模型的顶面圆周,这些被模型编码为纯色。一般而言人的视觉可以感知:128中色彩,130中饱和度,23中敏感度,16位存储一个像素:H7 S4 V5或者H6 S5 V5
HSV与RGB之间的相互转换
- 已知像素的RGB值,求HSV模型的表示
m=max(r,g,b), n=min(r,g,b),其中r,g,b是归一化的RGB颜色空间的值,求对应于HSV颜色空间的h,s,v
- 已知像素的HSV表示,求RGB模型的表示
已知该像素的HSV颜色空间的值是H, S, V,其中H的范围是[0, 360], S的范围是[0, 1], V的范围是[0, 1],求对应RGB颜色空间的r, g, b。
CMYK与RGB之间的相互转换
- 已知像素的CMYK表示,求RGB表示
已知CMYK颜色空间的值c,m,.y,k的范围是[0, 1],RGB颜色空间的值r, g, b的范围是[0, 255],CMYK到RGB的转换如下:
r = 255 * (1 - c) * (1 - k)
g = 255 * (1 - m) * (1 - k)
b = 255 * (1 - y) * (1 - k)
- 已知像素的RGB表示,求CMYK的表示
已知RGB的值为R, G, B,范围是[0, 255],求CMYK颜色空间的值c, m, y, k,对应的
R, G, B归一化的值是r, g, b,范围[0, 1]
r = R / 255
g = G / 255
b = B / 255
k = 1 - max(r, g, b)
c = (1 - r - k) / (1 - k)
m = (1 - g - k) / (1 - k)
y = (1 - b - k) / (1 - k)
公式参考: