На самом деле я работаю над каким-то проектом по обработке изображений, и меня где-то поразили.Я должен преобразовать цветное изображение в оттенки серого, и для этого я извлек значения КРАСНЫЙ , ЗЕЛЕНЫЙ , СИНИЙ компонента пикселя, используя 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);
, но это не дает мне серое изображение.Можете ли вы сказать, где я делаю ошибку.