実際、私はいくつかの画像処理プロジェクトに取り組んでいて、どこかで衝撃を受けました。色付きの画像をグレースケールに変換する必要があります。このために、 n を使用してピクセルのRED、GREEN、BLUEコンポーネントの値を抽出しました。そのピクセルのRGB値をそのRGBコンポーネントの平均に等しくGETRGB()
設定したいと考えています。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);
しかし、これは私に灰色のイメージを与えていません。どこで間違いを犯しているのか教えていただけますか。