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


前言

  本文将根据前面一篇博客的关系式进行XYZ坐标到RGB坐标的转换。


一、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
可见以下链接:

https://blog.csdn.net/weixin_42105848/article/details/124251493

二、XYZ色坐标图——>RGB色坐标(归一化关系)

  上文的公式还可以写为 [ x y z ] = [ 0.49001 0.30999 0.20000 0.17697 0.81240 0.01063 0 0.01000 0.99000 ] × [ r g b ] \begin{bmatrix}x\\y\\z\\\end{bmatrix}=\begin{bmatrix}0.49001&0.30999&0.20000\\0.17697&0.81240&0.01063\\0&0.01000&0.99000\\\end{bmatrix}\times\begin{bmatrix}r\\g\\b\\\end{bmatrix} xyz=0.490010.1769700.309990.812400.010000.200000.010630.99000×rgb
  设系数矩阵为A,即有 [ x y z ] = A × [ r g b ] \begin{bmatrix}x\\y\\z\\\end{bmatrix}=A\times\begin{bmatrix}r\\g\\b\\\end{bmatrix} xyz=A×rgb
  所以 [ r g b ] = A − × [ x y z ] \begin{bmatrix}r\\g\\b\\\end{bmatrix}=A^{-}\times\begin{bmatrix}x\\y\\z\\\end{bmatrix} rgb=A×xyz
  经计算得到以下关系:
[ r g b ] = [ 2.3645 − 0.8965 − 0.4681 − 0.5152 1.4264 0.0888 0.0052 − 0.0144 1.0092 ] × [ x y z ] \begin{bmatrix}r\\g\\b\\\end{bmatrix}=\begin{bmatrix}2.3645&-0.8965&-0.4681\\-0.5152&1.4264&0.0888\\0.0052&-0.0144&1.0092\\\end{bmatrix}\times\begin{bmatrix}x\\y\\z\\\end{bmatrix} rgb=2.36450.51520.00520.89651.42640.01440.46810.08881.0092×xyz
  因此,将XYZ色坐标图中的色坐标(x,y,z)带入上面的式子中就可以得到RGB色坐标图中的色坐标(r,g,b)了。


总结

  以上就是今天要讲述的所有内容了,希望大家有所收获~

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值