当与给定的yiq乘以rgb转换矩阵时,Matlab函数NTSC2RGB的不同值?

时间:2014-02-09 11:44:48

标签: image-processing matlab

我使用的是matlab函数ntsc2rgb,但它的输出与matlab网页上给出的矩阵函数的实际乘法不同。

![YIQ到RGB转换矩阵] http://www.mathworks.in/help/releases/R2013b/images/ref/eqn1248880083.png

http://www.mathworks.in/help/images/ref/ntsc2rgb.html nI是3维ntsc值矩阵。

   disp(nI([1:1],[1:1],[1:3])));
   fprintf('after\n');
   nI=ntsc2rgb(nI);
   disp(nI([1:1],[1:1],[1:3])));

Matlab shows this output 
before
1   1   1   0.956863
1   1   2   -0.165627
1   1   3   -0.0367254
after
1   1   1   0.719921
1   1   2   0.9519
1   1   3   1

But actual value should be 
value of   1   1   1   0.776073
value of   1   1   2   1.025472
value of   1   1   3   1.077615

在来自上面某些代码的值之前,使用matlab ntsc2rgb函数后会出现After值。

实际值是使用上图所示的YIQ到RGB矩阵计算的。

1 个答案:

答案 0 :(得分:2)

颜色matlab输出绝对正确。正确的步骤是:

  1. 将无效输入标准化为0..1范围
  2. 应用转换矩阵
  3. 某些点可能位于RGB颜色空间之外,映射到RGB空间内的最近点。