颜色空间转换
来源:互联网 发布:c语言或者符号 编辑:程序博客网 时间:2024/05/01 09:11
介绍几种常用颜色空间之间的转换算法。在转换过程中,设各个参数的变化范围为:
0≤R, G, B≤1; 0≤C, M, Y≤1; (-1)0°≤H≤360° 0≤S, V, L≤1。
1.RGB←→CMY
(1) RGB→CMY
C = 1- R M = 1- G Y = 1 - B
(2) CMY→RGB
R = 1- C G = 1- M B = 1 - Y
2.RGB←→HSL
(1) RGB→HSL
设M = max(R, G, B), m = min(R, G, B),P = M + m,D = M – m,则
L = (M + m)/2
若M = m,则S = H = 0
若M ≠ m,
若L < 0.5,则S = D / P
若L ≥ 0.5,则S = D / (2 - P)
若R = M,则H = (G - B) / D
若G = M,则H = 2 + (B - R) / D
若B = M,则H = 4 + (R - G) / D
若H ≥ 0,则H = H * 60
若H < 0,则H = H * 60 + 360
(2) HSL→RGB
若S = 0,则R = G = B = L
若S ≠ 0,则
若L < 0.5,则T2 = L * (1 + S)
若L ≥ 0.5,则T2 = L + S – L * S
T1 = 2 * L – T2
[ H = H / 360
T3r = H + 1/3, T
若T3 < 0,则T3 = T3 +1
若T3 > 1,则T3 = T3 –1
若6 * T3 < 1,则color = T1 + (T2 – T1) * 6 * T3
否则,若 2 * T3 < 1,则color = T2
否则,若 3 * T3 < 2,则color = T1 + (T2 – T1) * (2/3 –T3) * 6
否则color = T1
]
其中的[ ]段可用下一段代替:
T3r = H + 120, T
若T3 < 0,则T3 += 360
若T3 > 360,则T3 -= 360
若 T3 < 60,则 color = T1 + (T2 – T1) * T3 / 60
否则,若 T3 < 180,则 color = T2
否则,若 T3 < 240,则 color = T1 + (T2 – T1) * (240 – T3) / 60
否则color = T1
3.RGB←→YCbCr
(1) RGB→YCbCr
Y = 0.299R +
Cb = -0.1687R –
Cr = 0.5R –
(2) YCbCr→RGB
R = Y + 1.402 * (Cr - 128)
G = Y – 0.3441 * (Cb – 128) – 0.7141 * (Cr - 128)
B = Y + 1.772 * (Cb - 128)
- 颜色空间转换
- 颜色空间转换
- 颜色空间转换
- 颜色空间转换
- 颜色空间转换(一)
- 颜色空间转换(二)
- 颜色空间转换(一)
- 颜色空间转换(二)
- 图片颜色空间转换
- 颜色空间转换公式
- 颜色空间转换
- 颜色空间转换
- opencv颜色空间转换
- 颜色空间转换公式
- opencv颜色空间转换
- Mat 颜色空间转换
- opencv颜色空间转换
- 颜色空间转换
- 读 APUE 文件权限发现以前忽略的一些地方
- 从一段代码看Google的远大野心
- EJB原理之(一)---引子
- [刘干]蒙牛总裁牛根生的交际之道
- 概念设计.逻辑设计.物理设计.的简单说明
- 颜色空间转换
- Google 以外的17个搜索引擎创新(zt)
- 有没有在富士康工作的朋友?介绍一下情况,好吗?
- Web Office的一些不足(zt)
- 揭开正则表达式的神秘面纱
- 2007互联网技术发展预测(zt)
- 在线式Office
- qtdesigner的init()函数
- EJB原理之(二)--EJB之前的日子--纯SQL阶段