Tag: 颜色空间

在线性与非线性RGB空间中处理颜色时,实际的区别是什么?

线性RGB空间的基本性质是什么?非线性空间的基本性质是什么? 当在这8个(或更多)位中讨论每个通道内的值时,会发生什么变化? 在OpenGL中,颜色是3 + 1的值,我的意思是RGB + alpha,每个通道保留8位,这是我清楚的部分。 但是当涉及伽马校正时,我不明白在非线性RGB空间中工作的效果是什么。 因为我知道如何在graphics软件中使用曲线进行照片编辑,所以我的解释是,在线性RGB空间中,您可以按照原样使用这些值,不需要操作,也不需要附加math函数,而是非线性的信道通常会随着经典的幂函数行为而演变。 即使我把这个解释当作真实的解释,我仍然没有得到真正的线性空间是什么,因为在计算之后,所有的非线性RGB空间变成线性的,并且最重要的是我没有得到非零的部分线性色彩空间更适合人眼,因为最后所有的RGB空间都是线性的。

是否有一种颜色混合algorithm,像混合真实颜色一样工作?

RGB颜色的常见混合与绘画的混合颜色是非常不同的,它是光的混合而不是颜料的混合。 例如: Blue (0,0,255) + Yellow (255,255,0) = Grey (128,128,128) (它应该是蓝色+黄色=绿色) 是否有任何已知的颜色混合algorithm,就像混合真实的颜色一样工作? 我的方法 我已经尝试过了 将两种颜色转换为HSV和混合色调(乘以饱和度计算的系数),以及饱和度和通道值的简单平均值。 然后我从两种颜色计算平均亮度,并调整结果颜色以匹配这个亮度。 这工作得很好,但色调混合有时是错误的,例如: Red (Hue 0°) + Blue (Hue 240°) = Green (Hue 120°) 我发现有时我需要将色调值改变360°(当色相之间的差值大于180°时)。 Red (Hue 360°) + Blue (Hue 240°) = Magenta/fuchsia (Hue 300°) 但是这种转变也不是很好,例如: Cyan (Hue 179°) + Red (Hue 0°) = Hue 89.5° Cyan (Hue 181°) + […]