请我需要关于色彩空间变化的帮助
我已经使用转换计算了 Y、Cr、Cb 值
int Y = (int)(0.299*r+0.587*g+0.114*b);
int Cb=(int)(128-0.169*r-0.331*g+0.500*b);
int Cr =(int)(128+0.500*r-0.419*g-0.081*b);
现在我必须用新的色彩空间保存新图像,例如 YCrCb 而不是 RGB 我应该遵循什么。
请我需要关于色彩空间变化的帮助
我已经使用转换计算了 Y、Cr、Cb 值
int Y = (int)(0.299*r+0.587*g+0.114*b);
int Cb=(int)(128-0.169*r-0.331*g+0.500*b);
int Cr =(int)(128+0.500*r-0.419*g-0.081*b);
现在我必须用新的色彩空间保存新图像,例如 YCrCb 而不是 RGB 我应该遵循什么。
您可以使用 java 中的 bufferedImage 类在 YCbCr 空间中显示图像。为此,创建一个与 RGB 图像大小相同的空缓冲图像,并使用 setRGB 方法设置所有像素值,如下所示。
BufferedImage ycb = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
int val = (y<<16) | (cb<<8) | cr;
ycb.setRGB(i,j,val);
ImageIO.write(ycb,"png", new File("E:\\Rose\\ycbcr\\ycbcr.png"));