In his book, "The Big Questions" Steven Landsburg explains why colors are not perceived the same by different species or even different individuals. To paraphrase, we see color because objects reflect various frequencies of light differently. Furthermore, regardless of the full spectrum of color reflected by an object, the eyes and the brain can't really process it all. So as a compromise groups of nearby frequencies get average into a single frequency. Say, for example, a flower reflects light in 7 distinct frequencies. Your brain can only process 3 frequencies simultaneously. The eye distills the 7 frequencies into 3 by averaging the nearby frequencies into a single signal. If a different flower reflects different frequencies that also average to the same 3 frequencies distilled from the first flower our brains will see two different flowers with exactly the same color even though the real reflected spectrums may be quite different.
Different species and even different people whose eyes use different averaging rules will see different colors than most humans do. An eagle sees colors that are unimaginable to humans. Humans see colors that are unimaginable to dogs. Some humans whom we call color-blind simply have slightly different average processes. The color combinations that would effectively camoflage an object to regular humans are not at all effective on "color-blind" individuals. In such a case one could say the latter actually have better visual acuity.