颜色空间转换!问题还未解决。 (100分)

J

jinmen

Unregistered / Unconfirmed
GUEST, unregistred user!
求把RGB颜色空间转换到Lab颜色空间的源码。
 
Lab是什么颜色空间呀,怎么没有听过呢
 
GraphUtil单元有个颜色空间转换的函数
是ColorRGBToHLS
 
Lab 模式
在 Photoshop 的 Lab 模式中(名称中去掉了星号),亮度分量 (L) 范围可从 0 到 1
00。a 分量(绿-红轴)和 b 分量(蓝-黄轴)范围可从 +120 到 -120。
您可以使用 Lab 模式处理 Photo CD 图像,独立编辑图像中的亮度和颜色值,在不同系
统之间移动图像并将其打印到 PostScript? Level 2 和 Level 3 打印机。要将 Lab 图
像打印到其它彩色 PostScript 设备,应首先将其转换为 CMYK。
Lab 颜色是 Photoshop 在不同颜色模式之间转换时使用的中间颜色模式。
L*a*b 模型
L*a*b 颜色模型是在 1931 年国际照明委员会 (CIE) 制定的颜色度量国际标准模型的基
础上建立的。1976 年,该模型经过重新修订并命名为 CIE L*a*b。
L*a*b 颜色与设备无关,无论使用何种设备(如显示器、打印机、计算机或扫描仪)创
建或输出图像,这种模型都能生成一致的颜色。
L*a*b 颜色由亮度或光亮度分量 (L) 和两个色度分量组成:a 分量(从绿色到红色)和
b 分量(从蓝色到黄色)。
HSB 模型
HSB 模型以人类对颜色的感觉为基础,描述了颜色的 3 种基本特性:
色相是从物体反射或透过物体传播的颜色。在 0 到 360 度的标准色轮上,按位置度量
色相。在通常的使用中,色相由颜色名称标识,如红色、橙色或绿色。
饱和度(有时称为彩度)是指颜色的强度或纯度。饱和度表示色相中灰色分量所占的比
例,它使用从 0%(灰色)至 100%(完全饱和)的百分比来度量。在标准色轮上,饱和
度从中心到边缘递增。

亮度是颜色的相对明暗程度,通常使用从 0%(黑色)至 100%(白色)的百分比来度量

RGB 模型
绝大多数可视光谱可用红色、绿色和蓝色 (RGB) 三色光的不同比例和强度的混合来表示
。在这三种颜色的重叠处产生青色、洋红、黄色和白色。
由于 RGB 颜色合成可以产生白色,因此也称它们为加色。将所有颜色加在一起可产生白
色-即所有光都被反射回眼睛。加色用于光照、视频和显示器。例如,显示器通过红色
、绿色和蓝色荧光粉发射光产生颜色。
CMYK 模型
CMYK 模型以打印在纸上的油墨的光线吸收特性为基础。当白光照射到半透明油墨上时,
色谱中的一部分被吸收,而另一部分被反射回眼睛。
理论上,纯青色 (C)、洋红 (M) 和黄色 (Y) 色素合成,吸收所有颜色并生成黑色。这
些颜色因此称为减色。由于所有打印油墨都包含一些杂质,因此这三种油墨实际生成土
灰色,必须与黑色 (K) 油墨合成才能生成真正的黑色。(为避免与蓝色混淆,黑色用
K 而非 B 表示。)将这些油墨混合重现颜色的过程称为四色印刷。

减色 (CMY) 和加色 (RGB) 是互补色。每对减色产生一种加色,反之亦然。


RGB-->XYZ

///------------------CIE Trans
// X = (2.7689*R+1.7517*G+1.1302*B);
// Y = (1.0000*R+4.5907*G+0.0601*B);
// Z = (0.0000*R+0.0565*G+5.5943*B);

/// ----------------PAL Trans
X = (0.607*R+0.174*G+0.201*B);
Y = (0.299*R+0.587*G+0.114*B);
Z = (0.000*R+0.066*G+1.117*B);


L = pow((Y/WHITE_Y0), 1.0/3.0) - 16.0;
a = 500.0*(pow((X/WHITE_X0), 1.0/3.0) - pow((Y/WHITE_Y0), 1.0/3.0));
b = 200.0*(pow((Y/WHITE_Y0), 1.0/3.0) - pow((Z/WHITE_Z0), 1.0/3.0));
WHITE_X0, WHITE_Y0, WHITE_Z0, 为白光(R=255, G=255,B=255)时的
x,y,z表色系统的值,与所采用的光源有关。




 
3ks,正是我要的。谢谢!
 
顶部