如何从java中的灰度值中获取红色,绿色和蓝色值?

时间:2015-08-16 17:08:46

标签: java image

我通过以下方式获得像素的灰度值:

val=img.getRGB(j, i) & 0xFF;

用于处理目的。

现在,处理后我想要红色,绿色和蓝色值。我该怎么做?

2 个答案:

答案 0 :(得分:2)

以下是一些示例代码,用于获取BufferedImage上坐标(x,y)处像素的r,g,b,alpha和灰度值。

BufferedImage image;          // assume you have this image
int rgb = image.getRGB(x, y); // get the desired pixel
int r = (rgb >> 16) & 0xFF; 
int g = (rgb >> 8) & 0xFF;
int b = (rgb & 0xFF);
int alpha = (rgb >> 24) & 0xFF; 
int gray = (r + g + b) / 3; // rgb are not affected

答案 1 :(得分:0)

使用以下内容: -

int r=(rgb>>16) & 0xff; 
int g=(rgb>>8) & 0xff;
int b=(rgb) & 0xff;

其中int rgb=img.getRGB(j, i);

存储这些值以便以后检索 请参阅:RGB values of an image

如果是灰色图像: -

int rgb = (val << 16) | (val << 8) | (val << 0);

你可以像上面那样得到灰度图像的rgb值,然后应用前面提到的找到r,g和b的方法。