C#只将YCbCr的一个通道转换为RGB

时间:2016-02-09 01:34:23

标签: c# image-processing

这是我用来将一个YCbCr值转换为一个RGB像素的方法。

r = Math.Max(0.0f, Math.Min(1.0f, (float)(ycbcr.Y + 0.0000 * ycbcr.Cb + 1.4022 * ycbcr.Cr)));
g = Math.Max(0.0f, Math.Min(1.0f, (float)(ycbcr.Y - 0.3456 * ycbcr.Cb - 0.7145 * ycbcr.Cr)));
b = Math.Max(0.0f, Math.Min(1.0f, (float)(ycbcr.Y + 1.7710 * ycbcr.Cb + 0.0000 * ycbcr.Cr)));

return new Rgb((byte)(r * 255), (byte)(g * 255), (byte)(b * 255));

当我尝试简单地将g和b作为0并且将r作为ycbcr.Cr值返回时,我得到了这个。

enter image description here

这是对的吗?

编辑:在右边你看到了这个效果。

r = Math.Max(0.0f, Math.Min(1.0f, (float)(ycbcr.Cr)));
g = 0.0f;
b = 0.0f;

return new Rgb((byte)(r * 255), (byte)(g * 255), (byte)(b * 255));

0 个答案:

没有答案