画像の平均色を取得するにはどうすればいいですか? 質問する

画像の平均色を取得するにはどうすればいいですか? 質問する

画像を撮影して、その平均色を調べたいと思っています。つまり、画像の半分が黒で半分が白の場合、その中間の色、つまりグレーの色合いを取得します。最も頻繁に使用される単一の色または中央値になります。平均であれば何でも構いません。

Android でこれを実行するにはどうすればよいですか?

ベストアンサー1

Bitmap bitmap = someFunctionReturningABitmap();
long redBucket = 0;
long greenBucket = 0;
long blueBucket = 0;
long pixelCount = 0;

for (int y = 0; y < bitmap.getHeight(); y++)
{
    for (int x = 0; x < bitmap.getWidth(); x++)
    {
        Color c = bitmap.getPixel(x, y);

        pixelCount++;
        redBucket += Color.red(c);
        greenBucket += Color.green(c);
        blueBucket += Color.blue(c);
        // does alpha matter?
    }
}

Color averageColor = Color.rgb(redBucket / pixelCount,
                                greenBucket / pixelCount,
                                blueBucket / pixelCount);

おすすめ記事