Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The color of every photo on the internet blended together is orange (theatlantic.com)
55 points by krazydad on Aug 20, 2014 | hide | past | favorite | 63 comments



It's the color of incandescent bulbs, fire, and other popular sources of light, reflected off of a large variety of surfaces.


This wouldn't explain why the same effect was seen from photos of graffiti (which presumably were outside, in the day.)

"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. "


I'm curious how much exposed wall was included in those pictures. Graffiti is vastly more common on brick and concrete surfaces, which 99% of the tie are red, yellow, cream, or gray. Regardless of what color the graffiti is, if there's a lot of backdrop behind it I'm not at all surprised that it'd average to 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.


It is perhaps worth pointing out that I observed the same effect in collections of purely synthetic art (such as Fractals).

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.


This is pretty much what I was coming here to say.

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.


Exactly. The simplest explanation in my mind is that it's a white balance issue. Most photos are taken in some form of daylight, which is generally in the orange range without a pure white on a "correct" exposure. On average, photos will be taken in warmer (orange) rather than colder (blue) tones.

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.


Sun is actually white... which is why you see a all the colors in a rainbow. I know Superman lied to you. :)


Sun's radiation peak energy at sea level is around 500-600nm http://en.wikipedia.org/wiki/Sunlight#mediaviewer/File:Solar...

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.

http://www.gitthailand.com/image/ccd-spectrum.jpg


Why does that explain why plants are generally green? If you had told me that the energy peak was at X wavelength, I would have guessed that plants absorbed most of that wavelength in order to not be wasteful rather than preferentially reflecting that wavelength.


Plants are actually pretty miserably inefficient at turning sunlight into stored energy: http://en.wikipedia.org/wiki/Photosynthetic_efficiency (not only do they reflect away most of the light, but photosynthesis isn't linear at all graphed against light intensity: most of the noonday sun is wasted)

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


>If you had told me that the energy peak was at X wavelength, I would have guessed that plants absorbed most of that wavelength in order to not be wasteful rather than preferentially reflecting that wavelength.

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.


Interesting. I guess it actually emits all sorts of frequencies of light visible or not, but Superman is still wrong. :)


So the color could change in the next years with the emergence of fluorescent lamps, LEDs and cold cathode lighting.


Don't most of those newer lighting technologies usually try to imitate the color temperature of traditional lighting?


Compact fluorescent bulbs (cheap ones anyway) are quite "warm" and LEDs are cool, almost blue. I ended up combining them in my kitchen to get a color I liked.


That's what I thought of too. It could be tested by averaging a pool of images lit by fluorescent bulbs, LEDs, or LCD monitor glow.


Also the colour of a human, the most photographed animal on the planet.


The article addresses that and intentionally chooses non-human subjects such as walls of graffiti. These still show his `emergent orange' effect.

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.


http://www.chm.davidson.edu/vce/coordchem/spectrum.jpg

Orange is near the middle of the visible spectrum.


The averaging is happening in RGB space, not an HSV-esque space. There's no obvious reason to expect the hue to end up averaged.

For example, the RGB average of red and blue is not orange; it's pink or purple.


Actually the article is confused on this very point. I think it's actually implied that it's sampled in HSV and not weighted for saturation or value.

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.


I just tried my own suggestion. For a random sampling of wavelengths from 390 to 700, I converted each to RGB using this function http://stackoverflow.com/a/3407960 Then I averaged the R, G, and B values. The result is 144, 122, 90 or #907A5A which is... a dim brown color, with a "hue" of 36 which is very orange.

Edit: undid sRGB conversion since I think i did it wrong.


Good thought, and I think that the warm bias in digital cameras (and human tastes) probably contributes as well.


But the world isn't in RGB space. If you take a bunch of samples in the whole color spectrum, then approximate them each into sRGB, the average probably won't move that much.


Actually, it could move a lot.

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.


I'd say that a large part of their sample source was instagram, where every hipster known to humanity gathers to share their sepia saturated abominations.


I'm a little dubious about interpolating RGB values in that way -- I don't think averaging the numbers directly maps to the real world colour mixing you'd observe. I'd be interested in what the result is in Lab colour space.


Ah, that's problematic.

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.


"The RGB color model is closely modeled after the physical phenomenon of light."

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.


> Not actually true. RGB is modeled after the mechanism by which humans perceive colors (using red, blue, and green photoreceptors).

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.


I clearly misunderstood what you mean by "the physical phenomenon of light".

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"


It's not like this question has a "right" answer, because we are describing different models as "perceptual" or "physical".

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.


There's no receptor that actually peaks at red, though - it's more like we have indigo, yellowish-green, and greenish-yellow receptors, usually called S, M and L respectively.

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)


But, if you mixed (0, 0, 255) blue and (255, 255, 0) yellow, you get (127, 127, 127) grey. But blue and yellow doesn't make grey in the physical world.


Yes it does, at least with additive mixing.


Well, it could only ever be an approximation because you cannot make pure white light using two wavelengths of light in the real world. Waves of blue light and yellow light (AKAIK) would not be perceived as white by the eye.


In RGB, (127, 127, 0) is not a "pure" yellow, it is just the color you get when you mix red and green primaries. The human eye is actually rather poor at spectrophotometry, which is why colorimetry and spectrophotometry are distinct subjects.

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.


Why not? Yellow light ~580nm stimulates both long and medium ("red" and "green") photoreceptors in the eye. Blue light below 480nm stimulates the short "blue" photoreceptors, so you should see white. https://en.wikipedia.org/wiki/Color_vision#Physiology_of_col...


The color of the Universe is white-green according to this analysis: http://en.wikipedia.org/wiki/Cosmic_latte


they soon corrected their analysis in a 2002 paper,[1] in which they reported that their survey of the color of all light in the universe added up to a slightly beigeish white.


Strange, I can't repeat the results on various folders I have.

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!)


Hi, this Jim, the subject of the article. The Atlantic article omits that I'm normalizing the result (otherwise, the histogram is clustered in the middle and you get a dirt-brown color -- the hue is orange, but it's very desaturated). Here is pseudo-code in Processing showing what I'm doing:

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.


Maybe you should include lots of faces? And check that you're doing sRGB gamma math correctly. http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html

Edit: I'm guessing convert("RGB") means convert from whatever to linear RGB? So that part should be fine.


And yet the article says its not to do with the colour of flesh etc..


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.

Looks like there was only one test done explicitly without people.


Your grayish results are exactly what I would expect from averaging RGB values.


Here is a possible explanation: most digital camera makers tweak the color balance towards warm rather than cool or neutral because consumers prefer that.


looking at lists of RGB color names (e.g. http://cloford.com/resources/colours/500col.htm, http://www.keller.com/html-quickref/4a.html, http://en.m.wikipedia.org/wiki/X11_color_names) I notice that everything called 'orange' has a blue component of zero.

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.


Also, the common rgb->greyscale algorithm has a very low factor for the blue component (0.21 for r, 0.72 for g, 0.07 for b was one of the first on google)


I tried making a site to auto-blend images from Google Images…

https://github.com/derv82/ImageBlender

http://blen.derv.us

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.


i m using a ruby gem, color, to mix, blend colors. There are so many parameters and methods you may use to blend 2 colors. So i think, you may attain not only orange but other colors too deoending on how you blend


When you blend in 100M 'spacer.gif' images, it can skew the result.


I wonder what the average color of all web pages is, and that of all smart phone app icons.

Edit: web pages should be weighted by page views, and app icons by downloads.


My guess is that the average smart phone app colour is blue.


If you're weighting by page views, you could get a pretty good approximation by just taking screenshots of the top 10000 or so websites.


We need to throw out the spray tan selfie outliers.


I don't understand why it's presented as such a mystery? The average color obviously exists, and if I had guessed it would be a reddish/yellowish gray (due to the ubiquity of incandescent lighting, the non-UV-reflecting properties of surfaces etc).

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 :)


There's definitely some interesting things going on with human reasoning in the way different people interpret the result. I originally assumed the images would average to gray, but when I think about it logically, that would be kind of miraculous. We wouldn't expect a bunch of photos taken on Mars to average to gray (to be perfectly balanced in R, G and B), so why did I expect photos taken on Earth to? It would mean all the colors are in a very precise balance, which would be kind of odd.

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.


The color is normalized. Before normalization, it is gray :)


Hmm, are you really sure that, had you been asked without reading the article, you'd think the average colour to be reddish/yellowish gray due to lighting and ... etc? Really really?

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.


This is not to toot my own horn here (I would of expected graduations as well due to the sky and the ground), but I think I would of said It would of tended to orange, on the grounds that (and this is just my suspicion) people find a more orange hue a more pleasing whitebalance. What is online is what has been shared, and what is been shared will invariably be pleasing to the people that shared it.

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.


I don't disagree with you, I think. I think the human-generated art result is interesting, but may simply indicate that humans are mirroring (or even accentuating) what they see in the natural world. In other words, the physical composites may be orange because of chemistry and physics, and the synthetic averages may be orange because our perceptions are shaped in a world of chemistry and physics.


Well thanks a LOT, John Boehner.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: