If you were converting an RGB pixel to grayscale, you might be like me and be tempted to just add the red, green and blue components together and divide by 3 to get the grayscale equivalent of the color.
That’s close, but not quite correct!
Red, green and blue are not equal brightness, so doing a straight average gives you biased results.
There’s a wikipedia page on this topic here, but the equation to use is below:
grayScale = red * 0.3f + green * 0.59f + blue * 0.11f;
Here are some sample images to show you the difference.
Color:
Average:
Weighted Average Equation:
Why?
You might be wondering “why the heck would i want to convert RGB to grayscale?”
Well… if you render a scene once, convert it to grayscale and shove it into the red channel, then render the scene again slightly offset to the side, convert that to grayscale and shove it into the blue channel, you can get some neat images like the below. Red/Blue 3d glasses required, click the images to view the full size versions (;
Pingback: Fourier Transform (And Inverse) Of Images « The blog at the bottom of the sea
Pingback: Animating Noise For Integration Over Time « The blog at the bottom of the sea
Pingback: C++ Differentiable Programming: Searching For An Optimal Dither Pattern « The blog at the bottom of the sea