关于1931CIE——RGB色坐标图转换到XYZ色坐标关系


前言

1931年国际照明委员会(CTE)正式推荐了1931CIE- RGB系统,由此奠定了色度学的基础。但用该系统中的三原色R,G,B匹配某些颜色时,三刺激值 r ‾ \overline{r} r g ‾ \overline{g} g b ‾ \overline{b} b中的某个可能会出现令人难以理解的负值,不利于色度计算。这样,促使人们了找新的三原色X,Y,Z,使得由各原色以适当的刺激值 x ‾ \overline{x} x y ‾ \overline{y} y z ‾ \overline{z} z匹配颜色时,可避免上述问题。所以又确定了1931CIE-XYZ系统。


一、CIE推荐的两系统之间刺激值之间的关系

{ x ‾ = 2.7689 r ‾ + 1.7517 g ‾ + 1.1302 b ‾ y ‾ = 1.0000 r ‾ + 4.5907 g ‾ + 0.0601 b ‾ z ‾ = 0.0565 g ‾ + 5.5943 b ‾ \left\{ \begin{aligned} \overline{x} & = &2.7689\overline{r} + 1.7517\overline{g} + 1.1302\overline{b} \\ \overline{y} & = & 1.0000\overline{r} + 4.5907\overline{g} + 0.0601\overline{b}\\ \overline{z} & = & 0.0565\overline{g} + 5.5943\overline{b} \end{aligned} \right. xyz===2.7689r+1.7517g+1.1302b1.0000r+4.5907g+0.0601b0.0565g+5.5943b

公式引自文章:1931 CIE—RGB系统向XYZ系统的转换

二、归一化关系

因为色坐标图是经过归一化的,所以归一化后的关系为:
{ x = 0.49001 r + 0.30999 g + 0.20000 b y = 0.17697 r + 0.81240 g + 0.01063 b z = 0.01000 g + 0.99000 b \left\{ \begin{aligned} x & = & 0.49001r + 0.30999g+ 0.20000b\\ y & = & 0.17697r + 0.81240g+ 0.01063b\\ z & = & 0.01000g + 0.99000b \end{aligned} \right. xyz===0.49001r+0.30999g+0.20000b0.17697r+0.81240g+0.01063b0.01000g+0.99000b
其中具体位数根据需求自己确定。因此,将之前RGB色坐标图中的色坐标(r,g,b)带入上面的式子中得到XYZ色坐标图中的色坐标(x,y,z),就完成了最前面两幅图之间的转换了。


总结

这篇文章介绍了1931CIE推荐的RGB系统和XYZ系统的坐标转换,可以用于一些工作的预处理~

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个MATLAB程序,可以将CIE 1931坐标绘制在CIE 1931马蹄中: ```matlab % 定义CIE 1931匹配函数 xbar = [0.0014 0.0042 0.0143 0.0435 0.1344 0.2839 0.3483 0.3362 0.2908 0.1954 0.0956 0.032 0.0049]'; ybar = [0.000 0.0001 0.0004 0.0012 0.0040 0.0116 0.0230 0.0380 0.0600 0.0910 0.1390 0.2080 0.3230]'; zbar = [0.0065 0.0201 0.0679 0.2074 0.6456 1.3856 1.7471 1.7721 1.6692 1.2876 0.8130 0.4652 0.1395]'; % 定义CIE 1931马蹄坐标 x = 0:0.001:0.8; y = 0:0.001:0.9; % 生成CIE 1931马蹄的网格 [Y,X] = meshgrid(y,x); % 计算每个点的z值 Z = (1-X-Y)./Y; % 将马蹄中的坐标转换xyz坐标 X = X(:); Y = Y(:); Z = Z(:); % 计算坐标中的xy值 xyY = [X./(X+Y+Z), Y./(X+Y+Z)]; % 绘制CIE 1931马蹄 figure; plot(xyY(:,1),xyY(:,2),'k-'); hold on; plot([0 0.735 0.203 0.150 0.280 0.735],[0 0.265 0.455 0.175 0.112 0.265],'ro'); xlabel('x'); ylabel('y'); title('CIE 1931马蹄'); % 将坐标转换RGB值 M = [xbar ybar zbar]; RGB = xyY*M; RGB = max(RGB,0); RGB = RGB./max(RGB); % 绘制坐标 figure; scatter(xyY(:,1),xyY(:,2),10,RGB,'filled'); xlabel('x'); ylabel('y'); title('CIE 1931坐标'); ``` 这个程序会生成两个形窗口。第一个窗口显示CIE 1931马蹄,其中红点表示标准的红、绿、蓝、黄、品红、白光的坐标。第二个窗口显示CIE 1931坐标,其中每个点的颜表示对应的RGB值。注意,由于RGB值只在[0,1]范围内有效,因此坐标中的点可能会被截断或压缩到此范围内。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值