Цветовое пространство Java RGB в YCrCb преобразование цветового пространства
Пожалуйста, мне нужна помощь в отношении изменения цветового пространства
Я рассчитал значения 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, что я должен следовать.
1 ответ
Решение
Вы можете отобразить изображение в пространстве YCbCr, используя класс bufferedImage в Java. Для этого создайте пустое буферизованное изображение размером с ваше изображение 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"));