A: 

I don't believe so. The effect that each of the primary colors has on the eye is not identical. I remember reading something about this many years ago.

Basically, I think that red has the most effect on the receptors in the retina so, to get a true average in terms of effect, you would have to scale the three primary colors based on that.

However, I would question whether that sort of level of detail would be required in the case where there's only 256 possible scales of each primary color. You may find that the simplified averaging you're proposing will be more than adequate.

paxdiablo
A: 
Willie Wheeler
I know a picture is worth a thousand words, but sometimes you can use some words, too
1800 INFORMATION
+1  A: 

Averaging in HSL color space might produce better results.

eugensk00
I think he means Lightness, Saturation, Hue. I believe it's the same thing as HSV / HSL - try those in wikipedia.
Blorgbeard
added wikipedia link
Simucal
oops, sorry :) never could get it right
eugensk00
+7  A: 

Take a look at the answers to this question.

Basically, you want to convert the colors into something called Lab space, and find their average in that space.

Lab space is a way of representing colours where points that are close to each other are those that look similar to each other to humans.

Blorgbeard
Interesting. Until now I have been using simply HSL, but Lab looks worth investigating.
MattJ
+1  A: 

Yes. You can average two colors together like that. It's the approach used by OpenGL to blend colors together (e.g., in creating mip maps for rendering distant objects, or rendering a 50% transparent texture). It is fast, simple, and "good enough" for many situations. It isn't completely realistic, however, and probably wouldn't be used on photograph-quality images.

Cybis
Viewing environment and properties of the display have a huge impact on color perception, so I concur that simple averaging is good enough for most situations.
TrayMan