2013-10-27 522 views
1

請我需要有關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

保存爲什麼格式? –

+0

我需要jpg格式的圖片 –

回答

1

您可以使用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"));