java - 如何获取 5x5 正方形的 RGB 值?

标签 java colors pixel image

我正在编写一种方法,用于获取 5x5 正方形像素的 RGB 值,然后计算所有这些像素的平均颜色。 我们得到了一个要使用的包,这就是 .getPixel 方法等的来源。

我遇到的困难是获取 5x5 区域中的每个像素。 我尝试过的是运行循环,最后有 x++ 所以 x 增加了 1。但我意识到这只会获取第一行中的像素。

我认为我必须有另一个循环或某种嵌套循环才能获得 5x5 正方形,但我只是想不出如何在将值添加到 vars red、green 和 blue 的同时使其工作。

有什么提示吗?谢谢

private Color tileColor ( Picture pic, int x, int y ) {

  Pixel p;
  Color color;
  int r,g,b;
  int red = 0;
  int green = 0;
  int blue = 0;

  for (int i = 0; i <= 5; i++){

    p=  pic.getPixel(x,y);
    color = p.getColor();

    r = color.getRed();
    g = color.getGreen();
    b = color.getBlue();

    red = red + r;
    green = green + g;
    blue = blue + b;

    x++
  }
}

最佳答案

通常,我们可以这样写:

for (int x = 0; x < 5; x++) {
    for (int y = 0; y < 5; y++) {
        p =  pic.getPixel(x, y);
        // do something ....
    }
}

确定如果是5像素,那么0,1,2,3,4,已经是5像素了。

另一个常见的用法是:

for (int dx = 0; dx < 5; dx++) {
    for (int dy = 0; dy < 5; dy++) {
        p =  pic.getPixel(100 + dx, 200 + dy);
        // do something ....
    }
}

也就是获取相对于像素(100, 200)的像素。 dxdy 可以读作 delta x 和 delta y(小增量)。

关于java - 如何获取 5x5 正方形的 RGB 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115940/

相关文章:

Java:为 args.length == 0 抛出新异常。不起作用?

java - 按下键后如何控制edittext中的文本?

javascript - JS函数计算补色?

java - Android 2.1 native 锁定位图像素

Python Opencv - 无法更改图片的像素值

python-3.x - 使用python从屏幕像素中获取RGB值

java - 使用 switch 语句为 jbuttons java 提供操作

java - 在 Spring MVC 中包含 swagger 后,无法在 jetty 中运行应用程序

java - 使用异或将颜色与像素分开

r - 如何计算R中多维颜色的渐变