实际上,我正在从事一些图像处理项目并在某处受到打击。我必须将彩色图像转换为灰度,为此我已经使用 n 提取了像素的RED、GREEN、BLUE分量的值,GETRGB()
现在我想将该像素的RGB值设置为等于其RGB分量的平均值。RGB分量分别存储在 INT 变量中,所以你能帮我把这个 RGB 分量的平均值设置为原始像素值吗?代码的一部分是:
rgbArray=new int[w*h];
buffer.getRGB(0, 0, width, height, rgbArray , 0,width );
int a,r,g,b;
for(int i = 0 ; i<w*h; i++)
{
r = (0x00ff0000 & rgbArray[i]) >> 16;
g = (0x0000ff00 & rgbArray[i]) >> 8;
b = (0x000000ff & rgbArray[i]);
rgbArray[i] = (r+g+b)/3;
}
buffer.setRGB(0, 0, width, height, rgbArray , 0,width);
但这并没有给我一个灰色的图像。你能告诉我在哪里做错了吗?