调整亮度的颜色矩阵是什么?
本文关键字:是什么 色矩 颜色 亮度 调整 | 更新日期: 2023-09-27 17:49:31
搜索周围有很多关于将图像转换为亮度(B&W)或调整饱和度W/out改变亮度的信息。但是如何调整亮度本身呢?例如,如何使用5x5矩阵增加红色通道亮度?最终这将在C中使用,但同样的数学应该在/java或flash中工作。
对于从google来到这里的人来说,这里是缩放亮度的矩阵:
rl×l + gl + bl gl×l - gl bl×l - bl 0
rl×l - rl gl×l + rl + bl bl×l - bl 0
rl×l - rl gl×l - gl bl×l + rl + gl 0
0 0 0 1
,
-
l
-亮度倍增器, -
rl
-红色亮度(sRGB 0.213), -
gl
-绿色亮度(sRGB为0.715), -
bl
-蓝色亮度(sRGB为0.072)。
请注意:这个矩阵可能很容易产生色域外的颜色,所以当你期望准确的结果时不要使用它。例如,对于1, 0, 0, 1
向量和l=2
,它将产生1.213, 0.213, 0.213, 1
结果。从技术上讲,该向量具有期望的亮度(0.426),但显示的颜色将≈0.381。
我相信你把这三个颜色的值都改变了,所以…
要缩放RGB颜色,使用如下的矩阵:
float mat[4][4] = {
rscale, 0.0, 0.0, 0.0,
0.0, gscale, 0.0, 0.0,
0.0, 0.0, bscale, 0.0,
0.0, 0.0, 0.0, 1.0,
};
从:http://www.graficaobscura.com/matrix/index.html