2013-10-27 4 views
1

Пожалуйста, мне нужна помощь в отношении изменения цветового пространстваява RGB цветовое пространство для пространства преобразования YCrCb Color

Я имею вычислить 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

Сохранить в каком формате? –

+0

Мне нужно изображение в формате jpg –

ответ

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")); 
Смежные вопросы