The color of every photo on the internet blended together is orange
theatlantic.com
theatlantic.com
At first I assumed it was his averaging technique, but I'm more apt to believe it has to do with the spectrum of light which is being `sampled' by the selection of photos.
Don't forget that we live under a yellow sun, too. There is a hell of a lot of warm light in our world, natural and artificial.
which is green
http://en.wikipedia.org/wiki/Light#mediaviewer/File:Linear_v...
That is why grass/trees are green - they consume only the edges of the spectrum (about 10-15% of the total sunlight coming through) bouncing the rest back.
With respect to the original point about orange being average color of Internet photos - keep in mind that most photos are produced by digital CCD cameras which are more sensitive to orange/red than green/blue.
the plants consume edges of spectrum, so they would bounce the X wavelengths (green in case of our Earth) as it is just an unnecessary heat for them.
There's no real consensus on why. (There's some wild guessing that green photons might be too hot to handle: smashing fragile biomolecules apart rather than powering them... (http://scienceline.ucsb.edu/getkey.php?key=500) but then why does chlorophyll run fine on purple light?) You'd figure that there would be incredible selection pressure on increasing photosynthesis efficiency, but maybe they're stuck on a local maxima: it's not like a single mutation can turn a C3 plant into a C4 plant: http://en.wikipedia.org/wiki/C4_photosynthesis
It would probably even work on a bunch of photos taken of a white wall in some natural light, if you averaged them out. More of an orange hue than pure white, certainly.
"When someone told him that it was probably due to the colors of flesh in photographs, he tried it with a pool of graffiti. Still orange. "
Pick something else like "pictures of forests" instead of "pictures of graffiti" and suddenly your average stops being orange because you're not taking photos of buildings anymore.
https://www.flickr.com/photos/krazydad/3794489938/in/set-721...
While I don't think this rules out light as a possible culprit, it perhaps implies that humans are mimicking the natural world when they are making color choices.
Orange is near the middle of the visible spectrum.
For example, the RGB average of red and blue is not orange; it's pink or purple.
For example, consider what happens when averaging (0,1) and (0,-1) in cartesian coordinates vs polar coordinates. In cartesian coordinates you get the midpoint at (0,0), but in polar coordinates both have the same length... so you just get a point a (1+1)/2 distance along (0°+180°)/2. That's either (1,0) or (-1,0) depending on the handedness of the coordinate system, off to the side instead of in between!
The same effect happens in RGB vs HSV.
Edit: his blog entry implies RGB, and it looks like the average color is actually brownish grey, which would be highly unsurprising to anyone who has mixed paint.
Edit: undid sRGB conversion since I think i did it wrong.
The RGB color model is closely modeled after the physical phenomenon of light. In a linear RGB color space, you can average two colors to get the same result as if you had physically averaged those colors in the real world by combining light.
However, Lab is modeled after the subjective human perception of light and color. Lab is divorced from physical interpretations. Averaging colors in Lab does not have any real physical interpretation.
Not actually true. RGB is modeled after the mechanism by which humans perceive colors (using red, blue, and green photoreceptors).
If you mix Red and Blue light, you still only have Red and Blue light, but the human perception system will perceive purple light, even though there is no EM radiation at the 'purple' frequency.
http://commons.wikimedia.org/wiki/File:1416_Color_Sensitivit... (note the sensitivities are normalized - in actuality the blue receptors are much less sensitive than the other two)
This is exactly the misconception I was talking about when I said that RGB is modeled after physical processes and not after human perception. There is no such thing as a red, green, or blue photoreceptor. There are three types of cones: L, M, and S; there is also scotopic vision with its own response curve. The L, M, and S cones respond to a gamut which cannot be reproduced with any RGB system that uses real primaries. Or, put another way, no RGB system with real primaries can specify all the colors we see.
Instead, RGB is a simulation of a physical system which uses three light sources: red, green, and blue. That's all it is. For example, imagine that you have three LEDs, or three phosphors, or three lasers. It doesn't matter. The point is that RGB simulates these kinds of physical systems, not the systems in the human eye.
On the other hand, Lab and XYZ systems are modeled after the perception of light. The experiments which lead to the creation of the XYZ color system had subject participants match the color output of an RGB system with that of a monochromatic light source. This experiment allowed us to use a well understood color space (RGB) based on a physical process to test how human vision worked.
You seem to mean: "a common engineering method of displaying colors to the human perceptual system"
while I thought you meant: "the physical properties of the visible band of the electromagnetic spectrum"
The same phenomenon happens in audio. The vast majority of musical synthesizers either model the perception of sound or the physical production of sound. For example, you can model a piano as a physical system with a vibrating string, or you can model it as a subjective phenomenon, constructing a frequency spectrum that sounds similar using FM synthesis, subtractive synthesis, additive synthesis, et cetera--none of which correspond in any meaningful way to the piano itself, we're really trying to trick the ear.
In the same way, I see RGB as a simplified physical model rather than a perceptual model, because it does correspond rather closely to physical reality, and it corresponds somewhat poorly to subjective reality. You can construct RGB as a simplification from a continuous spectrum model of radiation, all you have to pick the spectrum of your primaries. From there, you can use the RGB model in your physical simulations, such as ray tracing and photon mapping. Lab color does not work well for ray tracers because it does not correspond to physical reality: it is fairly nonlinear, and the coordinate system is awkward.
Likewise, RGB is a poor model for subjective perception (compared to Lab or XYZ) because its gamut is limited, and differences in RGB space do not correspond well to differences in subjective qualities. You can see how awkward RGB is for perceptual modeling whenever you use a color picker. It is frustrating to try and construct a pleasing palette of colors by dragging around RGB sliders, or even HSV/HSL sliders, because the model is so far from subjective perception that doing something conceptually straightforward, such as altering hue or matching luminosity, requires fiddling about.
In short, the description of RGB as a "physical model" is because we use it for physical simulations, as well as for working with hardware such as monitors and cameras. My description of Lab, CIECAM, XYZ, etc. as perceptial models are because we use those for modeling the subjective perception of color.
However, when you say "pure white light"... there is no such thing! White light is a combination of different wavelengths of light. You can indeed make light that looks white (and therefore is white) by combining monochromatic yellow and monochromatic blue light sources. Amazing! Even though it will look white, objects illuminated by this unnatural light source will have unexpected colors. This is quantified by the CRI of a light source. Incandescent lights are defined to have a CRI of 100, but this is just a convention: the blackbody spectrum is quite common. If you grew up under fluorescent lamps, colors under the light of day might seem quite unusual.
I wrote a quick little (slow) Python script to compute a blended photo: https://gist.github.com/williame/92c7179d0963553d605f
If a folder has some theme, such as a folder I have of a boat regatta, I get an average picture that looks as you'd expect. So the code seems to average correctly.
If I run it on a bigger assemblage of photos, I tend to get a uniform gray though.
What am I doing wrong?
(I encourage you to try yourself!)
Edit: I'm guessing convert("RGB") means convert from whatever to linear RGB? So that part should be fine.
Looks like there was only one test done explicitly without people.
To avoid floating point rounding issues, I process the pixels in integer space. For each channel (R,G,B) I create an 1D array of integers (one integer for each pixel) and initialize them to zero.
smaxPixels = width*height; srmap = new int[smaxPixels]; sgmap = new int[smaxPixels]; sbmap = new int[smaxPixels]; for (int i = 0; i < smaxPixels; ++i) { srmap[i] = 0; sgmap[i] = 0; sbmap[i] = 0; }
For each pixel in each image, I add the pixel value to the sum for the corresponding pixel (in the below code, 'offset' is typically zero).
for (int i = 0; i < smaxPixels; ++i) {
int px = sImage.pixels[i];
srmap[i] += red(px);
sgmap[i] += green(px);
sbmap[i] += blue(px);
}
I then produce a normalized image by finding the minimum and maximum components, and mapping all the pixel sums to that range.for (int i = 0; i < smaxPixels; ++i) { minValue = min(minValue, srmap[i]); maxValue = max(maxValue, srmap[i]); minValue = min(minValue, sgmap[i]); maxValue = max(maxValue, sgmap[i]); minValue = min(minValue, sbmap[i]); maxValue = max(maxValue, sbmap[i]); }
pg.beginDraw(); // pg is an offscreen Image buffer I am going to draw into...
pg.loadPixels();
for (int i = 0; i < smaxPixels; ++i)
{
if (maxImagesPerTile == 1)
pg.pixels[i] = color(srmap[i],sgmap[i],sbmap[i]);
else
pg.pixels[i] = color( map(srmap[i],minValue,maxValue,0,255),
map(sgmap[i],minValue,maxValue,0,255),
map(sbmap[i],minValue,maxValue,0,255));
}
pg.updatePixels();
pg.endDraw();
That's the essence of it. The bright "orange" is a normalization effect. Note that if I were to simply "average" the images without the normalization step, the resulting color is generally a dirt-brown. Normalizing the image has the effect of increasing the saturation and the contrast, without affecting the hue in an HSL sense. I discuss this in my paper, although the Atlantic article omitted this important point.So, this claim would imply that the average color in nature doesn't have a blue component.
I guess the conclusion must be a) the sky is blue, and b) the majority of photos on the internet does not show sky.
https://github.com/derv82/ImageBlender
Last time I checked, it didn't work 100%, and was laggy.
But I learned bootstrap in the process, and some of the quirks associated with HTML5 canvas.
Edit: web pages should be weighted by page views, and app icons by downloads.
I was hoping to also see a covariance matrix, or maybe even a 3d histogram of pixel colors on the web -- that would be interesting. This person is clearly not a data scientist :)
If I'd been asked, I'd perhaps have tried to be clever and said that the top half of the image would be blue as the sky is blue and indoor walls are usually white which won't hurt the blue so much, and that the bottom half would be a browny green due to grass and carpet etc.
Obviously, this is just another explanation.
Actually I would of liked to of seen some of those aggregate photos. Maybe there WERE graduations!
edit: wish granted!: http://jbum.com/papers/EmergentOrange_paper.pdf
some of his sample sets did produce graduations, in particular vignettes and lighter at the top darker at the bottom themes.
in defence of my statement is figure 10
Figure 10. Averages of four different pools of digital
abstract art found on Flickr. Pools used: Processing,
CGArt, Computer Art Creations, Generative and
Evolutioanry Art
for some reason he produces a surprisingly orange result, and still believes that the overall orange hue may be due to: 4) It’s caused by chemistry & physics. The amalgam photos
are functioning as a kind of mass spectrometer,
reflecting the average chemical composition of the
subjects being photographed.
[...]
I find #4 the most convincing. It is not necessarily
mutually exclusive with some of the others (e.g. the
chemistry of the earth/sun affects human choices and
camera design).
Meh.With random images which include a few outdoor photos, there is a noticeable effect from the sky, but not as dramatic as I might expect - it tends to produce a whitening, rather than a visible blue.