gpt4 book ai didi

java - 如何显示图像的 RGB 值直方图?

转载 作者:太空狗 更新时间:2023-10-29 16:40:48 24 4
gpt4 key购买 nike

我的应用程序捕获图像并对其应用滤镜以修改图像 RGB 值。

修改后,我希望在图像本身的顶部显示每种颜色(红色、绿色、蓝色)的直方图。

我已经知道如何获取 RGB 值并且我已经知道如何获取位图,我只是不知道如何绘制它们。

RGB 值代码:

    int[] pixels = new int[width*height];
int index = 0;
image.getPixels(pixels, 0, width, 0, 0, width, height);
Bitmap returnBitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);

for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
A = (pixels[index] >> 24) & 0xFF;
R = (pixels[index] >> 16) & 0xFF;
G = (pixels[index] >> 8) & 0xFF;
B = pixels[index] & 0xFF;
++index;

}
}

最佳答案

我们做过类似的事情。我们得到了图像的位图:

Bitmap bmp = BitmapFactory.decodeResource(<youImageView>.getResources(), R.drawable.some_drawable);

然后我们遍历每个像素并使用以下代码获取像素的颜色:

int color = bmp.getPixel(i, j);
int[] rgbValues = new int[]{
(color >> 16) & 0xff, //red
(color >> 8) & 0xff, //green
(color ) & 0xff //blue
};

编辑:
我刚读到你也可以通过使用这个 insead 来获得不透明度:

int color = bmp.getPixel(i, j);
int[] rgbValues = new int[]{
(color >> 24) & 0xff, //alpha
(color >> 16) & 0xff, //red
(color >> 8) & 0xff, //green
(color ) & 0xff //blue
};

如果您已经有了这些值,我会推荐您 androidplot创建图表。有一些示例使其易于使用。我没有使用过条形图,但折线图效果很好。 Here是 androidplot 的条形图示例。
我只想总结不同的值,然后(如果你想的话)对其进行归一化。


要最终显示图表,您可以将布局创建为 FrameLayout,然后 this可能会帮助您处理 z 顺序。您现在唯一要做的就是显示/隐藏布局部分,其中包含您的图表。 ( View.setVisibility )

关于java - 如何显示图像的 RGB 值直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18101291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com