计算给定图像中的红色像素

时间:2017-04-16 23:38:35

标签: java image-processing pixel rgba

我是Java的新手,想要计算给定图像中的红色像素。到目前为止我有下面的代码,但不知道添加什么条件来检查像素是否为红色。到目前为止,我有以下代码。提前谢谢。

public static int countRedPixels(Picture v){

    BufferedImage image = (v.getBufferedImage());
    int width = image.getWidth();
    int height = image.getHeight();

    int redCount = 0;
    int pixelCount = 0;

    for (int x = 0; x < width; x++) {
        for (int y = 0; y < height ; y++) {

            int rgb = image.getRGB(x, y);

            //get rgbs
            //int alpha = (rgb >>> 24) & 0xFF;
            int red   = (rgb >>> 16) & 0xFF;
            int green = (rgb >>>  8) & 0xFF;
            int blue  = (rgb >>>  0) & 0xFF;

            if (red == 255 && green == 0 && blue == 0 || image.getRGB(x, y) == 0xFFFF0000) {
                redCount++;
            }

            pixelCount++;
        }
    }

    System.out.println("Red Pixel Count:" + redCount);
    System.out.println("Pixel Count:" + pixelCount);
    return redCount;
}

enter image description here

1 个答案:

答案 0 :(得分:0)

不确定我是否遗漏了某些东西,或者你真的没有看到森林里的树木。无论如何,评论转过来了答案:

鉴于 red 表示(255,0,0),您可以这样做:

if (image.getRGB(x, y) == 0xFFFF0000) {
    ++redCount;
}

或者,如果你不关心alpha:

if (red == 255 && green == 0 && blue == 0) {
    ++redCount;
}