颜色矩阵应用和公式总结
- 格式:doc
- 大小:41.10 KB
- 文档页数:21
颜色矩阵应用作者声明本文大部分都是自己测试所得的结果,前面的颜色基础多半是摘自百度百科里面的,还有更多的色彩方面的一些专业术语就不多加介绍了,颜色是感性的,我们可以用数字描述它,但是却要通过眼睛感受它的美丽.所以推荐大家多多测试一下,就是了.夜色之下--2012/7/8前言颜色矩阵的使用是十分简单而直观的,功能是十分强大的,有很多功能都是imagetint和greyscale所不能实现的,本文会介绍颜色矩阵总结的公式,并且简单的介绍一些色彩的概念.好吧,我们先了解一下一些,RM中要知道的色彩的一些基本概念吧!色彩基础色相色相是色彩的首要特征,是区别各种不同色彩的最准确的标准。
事实上任何黑白灰以外的颜色都有色相的属性,而色相也就是由原色、间色和复色来构成的。
色相,色彩可呈现出来的质的面貌。
自然界中各各不同的色相是无限丰富的,如紫红、银灰、橙黄等。
色相即各类色彩的相貌称谓。
色调色调指的是一幅画中画面色彩的总体倾向,是大的色彩效果。
在大自然中,我们经常见到这样一种现象:不同颜色的物体或被笼罩在一片金色的阳光之中,或被笼罩在一片轻纱薄雾似的、淡蓝色的月色之中;或被秋天迷人的金黄色所笼罩;或被统一在冬季银白色的世界之中。
这种在不同颜色的物体上,笼罩着某一种色彩,使不同颜色的物体都带有同一色彩倾向,这样的色彩现象就是色调。
灰度灰度使用黑色调表示物体。
每个灰度对象都具有从0%(白色)到灰度条100%(黑色)的亮度值。
使用黑白或灰度扫描仪生成的图像通常以灰度显示。
所谓灰度色,就是指纯白、纯黑以及两者中的一系列从黑到白的过渡色。
我们平常所说的黑白照片、黑白电视,实际上都应该称为灰度照片、灰度电视才确切。
灰度色中不包含任何色相,即不存在红色、黄色这样的颜色。
灰度共有256级一般,像素值量化后用一个字节(8b)来表示。
如把有黑-灰-白连续变化的灰度值量化为256个灰度级,灰度值的范围为0~255,表示亮度从深到浅,对应图像中的颜色为从黑到白。
黑白照片包含了黑白之间的所有的灰度色调,每个像素值都是介于黑色和白色之间的256种灰度中的一种。
对比度对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,差异范围越大代表对比越大,差异范围越小代表对比越小,好的对比率120:1就可容易地显示生动、丰富的色彩,当对比率高达300:1时,便可支持各阶的颜色。
但对比率遭受和亮度相同的困境,现今尚无一套有效又公正的标准来衡量对比率,所以最好的辨识方式还是依靠使用者眼睛。
对比度是最白与最黑亮度单位的相除值。
因此白色越亮、黑色越暗,对比度就越高。
对比度对视觉效果的影响非常关键,一般来说对比度越大,图像越清晰醒目,色彩也越鲜明艳丽;而对比度小,则会让整个画面都灰蒙蒙的。
高对比度对于图像的清晰度、细节表现、灰度层次表现都有很大帮助。
有两种提高对比度的方法:1.提高白色画面的亮度。
2.让黑色更黑,降低最低亮度,这个也许有些不好理解,首先,需要知道控制液晶显示器光线的明暗变化,是不可能通过发光灯管开、关来实现的,而液晶又是不能做到100%不漏光的,所以即使调整至纯黑画面,液晶显示器还是会有一些亮度的。
这是个分母、分子的问题,分子小了对比度自然就高了。
亮度亮度是指发光体(反光体)表面发光(反光)强弱的物理量。
人眼从一个方向观察光源,在这个方向上的光强与人眼所“见到”的光源面积之比,定义为该光源单位的亮度,即单位投影面积上的发光强度。
亮度的单位是坎德拉/平方米(cd/m2)亮度是人对光的强度的感受。
它是一个主观的量。
与亮度不同的,由物理定义的客观的相应的量是光强。
这两个量在一般的日常用语中往往被混淆。
简而言之, 亮度(lightness)是颜色的一种性质,或与颜色多明亮有关系的色彩空间的一个维度。
饱和度饱和度可定义为彩度除以明度,与彩度同样表征彩色偏离同亮度灰色的程度。
注意,与彩度完全不是同一个概念。
但由于其代表的意义与彩度相同,所以才会出现视彩度与饱和度为同一概念的情况。
饱和度是指色彩的鲜艳程度,也称色彩的纯度。
饱和度取决于该色中含色成分和消色成分(灰色)的比例。
含色成分越大,饱和度越大;消色成分越大,饱和度越小。
RM中总结的颜色矩阵公式基本声明声明一下,本文里面假定颜色矩阵生效前的任意一个像素的RGBA值分别为,R,G,B,A.生效后分别为,r,g,b,a. 颜色矩阵对背景色无效就是solidcolor,必须对图片使用,另外说一下的是颜色矩阵每一个值大小不局限于-1到1之间,比如你可以是m11=4或者其他的都是可以的。
颜色矩阵是对一个个像素进行控制,每一个像素都包含有RGBA这四个分量,因而通过控制他们我们可以实现很多的效果.比如说实现alpha白,aplha白就是将某个颜色分量的透明度a 设置一下,比如设置为0那么这个颜色就不可见了,就是透明的.这个是用imagetint和geryscale实现不了的,比如说纯色的实现等等.总之利用颜色矩阵可以实现大部分ps对于色彩的控制效果.还有不一定每次非要写5行来表示你的颜色矩阵,自己通过下面的学习灵活运用下就是了.(颜色的缩放,旋转,削减,偏移这些就不扯了,本文只想诠释直观的实用颜色矩阵)颜色矩阵基本定义:颜色颜色的参数是由5*5的矩阵表示的,用来改变相应的meter=image类型的meter 的指定的image图片的色彩表达方式用的,默认的矩阵如下:ColorMatrix1=1; 0; 0; 0; 0ColorMatrix2=0; 1; 0; 0; 0ColorMatrix3=0; 0; 1; 0; 0ColorMatrix4=0; 0; 0; 1; 0ColorMatrix5=0; 0; 0; 0; 1主对角线上的值,从左上到右下,依次是.红,绿,蓝,alpha,和一个占位符,0.0表示的是none,1.0表示的是正常,矩阵中允许一种颜色的值来修改另外一种颜色(比如:红色的值可能有蓝色值的一半),最后一行(ColorMatrix5),这个偏移量会直接添加给颜色( 比如:colormatrix=0.5;0;0;0;1那么红色的值就增加了50%)占位符是神马呢?这个你不用做太多理解,实际上占位符没有什么实际的含义,你可以理解为占个位置你发现上面矩阵是5*5的,如果没有占位符就会变成5*4的了,可能在颜色矩阵内在运算的时候就引入了占位符这个概念,在RM里面写法是固定的.你不要改就是了颜色矩阵规范式R G B A Vm11 m12 m13 m14 m15m21 m22 m23 m24 m25m31 m32 m33 m34 m35m41 m42 m43 m44 m45m51 m52 m53 m54 m55综合公式:r=R*m11+G*m21+B*m31+A*m41+m51*255g=R*m12+G*m22+B*m32+A*m42+m52*255b=R*m13+G*m23+B*m33+A*m43+m53*255a=R*m14+G*m24+B*m34+A*m44+m54*255负运算前面就是只有对角线有值的情况下面b的负运算值为b=B*m33=64*(-1)=192,但是加上了一个削减量和偏移量这个值会发生变化,比如加上0.1的偏移,这个问题有两个解决方案:(1).缩放后值192的基础上面加上偏移量0.1*255等于218(2).做连续的运算,b=B*m33=64*(-1)+255*0.1=-38(饱和处理后大小为0) Colormatrix的方案使用的是(2)亮度,对比度和饱和度的实际矩阵Brightness Matrix Contrast Matrix Saturation Matrix(亮度矩阵) (对比度矩阵) (饱和度矩阵)R G B A W R G B A W R G B A WR [1 0 0 0 0] R [c 0 0 0 0] R [sr+s sr sr 0 0]G [0 1 0 0 0] G [0 c 0 0 0] G [ sg sg+s sg 0 0]B [0 0 1 0 0] B [0 0 c 0 0] B [ sb sb sb+s 0 0]A [0 0 0 1 0] A [0 0 0 1 0] A [ 0 0 0 1 0]W [b b b 0 1] W [t t t 0 1] W [ 0 0 0 0 1]b = brightnessc = contrast s = saturationt = (1.0 - c) / 2.0 sr = (1 - s) * lumRLegend sg = (1 - s) * lumGR = red sb = (1 - s) * lumBG = greenB = blue lumR = 0.3086 or 0.2125A = alpha lumG = 0.6094 or 0.7154W = white lumB = 0.0820 or 0.0721亮度矩阵其实是一个RGB分量的简单的表达矩阵对比度矩阵是一个由RGB分量值缩放的矩阵,对于矩阵的一个额外的参数的用途是转移基础色调(当c=0的时候),从黑到灰.饱和度矩阵重新调整RGB颜色的分配,在s=0的时候,R=G=B=luminance brightness (亮度)表示的是灰度的亮度层级.(声明一点的是,无论是神马矩阵,归根结底都是颜色矩阵,只是表现的方式不同,起到的作用不同而已,所谓的亮度,对比度,和饱和度矩阵是总结出来的矩阵,是一种经验使然的矩阵) 亮度,对比度和饱和度矩阵相乘之后的矩阵R G B A W R G B A W R G B A WR [1 0 0 0 0] R [c 0 0 0 0] R [sr+s sr sr 0 0]G [0 1 0 0 0] G [0 c 0 0 0] G [ sg sg+s sg 0 0]B [0 0 1 0 0] X B [0 0 c 0 0] X B [ sb sb sb+s 0 0]A [0 0 0 1 0] A [0 0 0 1 0] A [ 0 0 0 1 0]W [b b b 0 1] W [t t t 0 1] W [ 0 0 0 0 1] Brightness Matrix Contrast Matrix Saturation MatrixR G B A WR [c(sr+s) c(sr) c(sr) 0 0 ]G [ c(sg) c(sg+s) c(sg) 0 0 ]===> B [ c(sb) c(sb) c(sb+s) 0 0 ]A [ 0 0 0 1 0 ]W [ t+b t+b t+b 0 1 ]Transformation Matrix那么我们只想对亮度进行控制,直接使用亮度矩阵就是了,复制亮度矩阵的表现形式,之后定义一个变量b,控制一下b的值就是了.同理我们可以这么使用其他的矩阵,其实都是颜色矩阵,不过相应控制的色彩表现是不同的.亮度,对比度和饱和度矩阵使用范例比如你可以设定几个变量在[variables]节点下•Brightness = 0•Contrast = 1•Saturation = 1之后编辑代码如下:[Variables]Brightness=-0.2Contrast=1.2Saturation=1.5[b]Measure=Calc Formula=#Brightness#[c]Measure=Calc Formula=#Contrast#[s]Measure=Calc Formula=#Saturation#[t+b]Measure=Calc Formula=((1.0-c)/2)+b[c(sr)]Measure=CalcFormula=c*((1-s)*0.3086)[c(sg)]Measure=CalcFormula=c*((1-s)*0.6094)[c(sb)]Measure=CalcFormula=c*((1-s)*0.0820)[c(sr+s)]Measure=CalcFormula=c*(((1-s)*0.3086)+s)[c(sg+s)]Measure=CalcFormula=c*(((1-s)*0.6094)+s)[c(sb+s)]Measure=CalcFormula=c*(((1-s)*0.0820)+s)[Image]Meter=IMAGEImageName=cats.jpgColorMatrix1=[c(sr+s)];[c(sr)];[c(sr)];0;0ColorMatrix2=[c(sg)];[c(sg+s)];[c(sg)];0;0ColorMatrix3=[c(sb)];[c(sb)];[c(sb+s)];0;0ColorMatrix4=0;0;0;1;0ColorMatrix5=[t+b];[t+b];[t+b];0;1DynamicVariables=1那么你就可以通过控制相应的变量从而控制我们想控制的图片的亮度,对比度和饱和度了。