我怎样才能获得的图像的平均颜色 [英] How can I get the average colour of an image

查看:123
本文介绍了我怎样才能获得的图像的平均颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望能够拍摄图像,并找出什么是平均颜色。这意味着如果图像是半黑半白,我会得到介于两者之间......灰色一些树荫。它可能是最常见的单一颜色或中位数。不限中等就可以了。

我怎么能做到这一点的机器人。

解决方案

 位图位= someFunctionReturningABitmap();
长redBucket = 0;
长greenBucket = 0;
长blueBucket = 0;
长pixelCount = 0;

对于(INT Y = 0; Y< bitmap.getHeight(); Y ++)
{
    为(中间体X = 0 X  - 其中; bitmap.getWidth(); X ++)
    {
        颜色为c = bitmap.getPixel(X,Y);

        pixelCount ++;
        redBucket + = Color.red(C);
        greenBucket + = Color.green(C);
        blueBucket + = Color.blue(C);
        //做阿尔法事?
    }
}

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

I want to be able to take an image and find out what is the average colour. meaning if the image is half black half white, I would get something in between... some shade of gray. It could be the most frequent single colour or median. Any average will do.

How can I do this in android.

解决方案

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);

这篇关于我怎样才能获得的图像的平均颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆