How to know if certain pixel is red, or blue, or green

I want to change colors from of a certain image, so all the reds will be certain blue,
and all the blues will be certain blue.

in order to do that, I am looking for some logic in the colors numbers, so I can use a simple if.

for example, all red have H150 or more, and G100 or less and B100 or less.

Any idea ?

Hello,

Take a look here:

There is a search on the upper right… search for related keywords.

:)

you could use red(), green(), blue(), pixels array

I already extract the R, G and B of the pixel.

Now, I want to check if it is some kind of red (from few thousands shades of red).

This is what I’m looking for

Hello,

Search for color on the Processing website.

There is also hue, saturation and brightness that you can work with.

:)

if you got the RED, GREEN and BLUE values, and the requirement to turn red would be R>150, G>100, B>100. So just put that into an if statement. Repeat for all oolors.

Hello,

Processing has a Color Selector… that is in the Tools menu:

image

:)

1 Like

The main idea is to analyze an image, so I can change it’s color to a dozen color,
so, I’m looking for an easy way to the check the red, green and blue of a color, and determine which color is it,
of example - I want to mark as a red all the variation from the top right corner of the image you’ve paste.

So, I basically looking for a formula, because it happen to be more than 100k different shades in a 1200X1200 pixel image

well a simple solution would be to search the distance on a 3D color cube. If a color must be either Red, green or blue, you can just find the closest point. Posterization filters work in a similar way (can work).

here is a project that incorporates it.

Below is some p5.js code that might accomplish what you are trying to do. Note what the color_checker function does. Pass it a color along with ranges for the red, green, blue, and alpha components, and it will return true if all components fall within their designated ranges, and false otherwise.

The code below draws a bluish square, then checks the colors of all the pixels. The bluish pixels are turned to red. It can easily be translated to Java.

// p5.js code
function setup() {
  createCanvas(200, 200);
  frameRate(1); // enable observer to see color change
}

function draw() {
  background(255, 255, 0);
  noStroke();
  fill(0, 0, 216); // note that blue component is 216
  rect(width / 4, height / 4, width / 2, height / 2);
  if (frameCount == 2) {
    for (let x = 0; x <= width; x++) {
      for (y = 0; y <= height; y++) {
        c = get(x, y);
        // note range for blue
        if (color_checker(c, 0, 255, 0, 255, 210, 220, 0, 255)) {
          fill(255, 0, 0);
          square(x, y, 1);
        }
      }
    }
    noLoop();
  }
}

function color_checker(c, r_lo, r_hi, g_lo, g_hi, b_lo, b_hi, a_lo, a_hi) {
  /*
  given a color object, and low and high values (inclusive), for r, g, b, and a,
   return:
   true if all color components are within the specifed ranges,
   otherwise false
  */
  let r = red(c);
  let g = green(c);
  let b = blue(c);
  let a = alpha(c);
  return (
    (r >= r_lo) && (r <= r_hi) &&
    (g >= g_lo) && (g <= g_hi) &&
    (b >= b_lo) && (b <= b_hi) &&
    (a >= a_lo) && (a <= a_hi)
  );
}