Also, don't let color averaging stop you there with texture blending!
If you use a linear interpolation you can blend any amount of a texture into another. With a lerp you can blend more or less of a texture in to taste as long as the interpolate value is between 0 and 1.
vec3 red = vec3(1,0,0); vec3 black = vec3(0,0,0); vec3 mixedColor = mix(red, black, 0.25); // This gives you 75% Red and 25% Black.
Another cool application is smooth texture blending. You can use color lerping on outdoor terrain to seamlessly blend different textures together, like grass and dirt, in irregular ways that break up the texture on a mesh so that it isn't solid. You give different vertices on a mesh different lerp parameters, and vertex interpolation will give you all of the interpolation values in between so it fades from one blend percentage to the other. Check out the screenshot of the day and notice the texture blending on the ground in the back. http://www.gamedev.net/page/showdown/view.html/_/slush-games-r46850
Texture blending is pretty handy.