41 votes

Quelle est la meilleure façon de moyenner deux couleurs qui définissent un dégradé linéaire?

Si j'ai deux couleurs définies par leurs valeurs RVB, puis-je le moyen le Rouge, le Vert et le Bleu des valeurs et de les combiner afin de définir une troisième couleur qui ressemble à un visuel de la moyenne des deux?

ie NewColor = (R1+R2)/2,(G1+G2)/2,(B1+B2)/2

EDIT1: Merci pour toutes ces réponses. Pour mes besoins, je ne suis que de traiter avec les paires de couleurs sont des nuances de la même couleur donc je pense qu'en moyenne va travailler. Cependant, je vais essayer de la conversion de l'Espace de Laboratoire pour s'assurer que l'hypothèse est vraie et que la technique sera utile dans l'avenir.

EDIT2: Voici mes résultats FWIW. Color1 et Color2 sont mes deux couleurs et deux colonnes du milieu sont les résultats de calcul de la moyenne dans L*a*b l'espace et le calcul de la moyenne RVB respectivement. Dans ce cas, il n'y a pas beaucoup de différence entre les deux la couleur et les différences dans la sortie de la moyenne de techniques, c'est subtil.

visual comparison of color averaging techniques

25voto

Blorgbeard Points 38991

Regardez les réponses à cette question .

En gros, vous voulez convertir les couleurs en un espace appelé espace Lab et y trouver leur moyenne.

L'espace de laboratoire est un moyen de représenter des couleurs où les points proches les uns des autres sont semblables à des humains.

6voto

eugensk00 Points 832

La moyenne dans l' espace colorimétrique HSL peut produire de meilleurs résultats.

6voto

Willie Wheeler Points 8632

Je ne sais pas si prendre une simple moyenne des composants est la "meilleure" du point de vue de la perception (cela ressemble à une question pour un psychologue), mais voici quelques exemples utilisant la moyenne des composants simple.

texte alternatif

Le rouge-vert-moutarde est moche mais l'interpolation semble assez raisonnable.

4voto

Cybis Points 5062

Oui. Vous pouvez faire la moyenne de deux couleurs ensemble comme ça. C’est l’approche utilisée par OpenGL pour mélanger les couleurs (par exemple, lors de la création de mip maps pour le rendu d’objets distants ou du rendu d’une texture transparente à 50%). C'est rapide, simple et "assez bon" pour de nombreuses situations. Cependant, ce n'est pas tout à fait réaliste et ne serait probablement pas utilisé sur des images de qualité photo.

-3voto

jellohead Points 141

Il y a en fait un moyen beaucoup plus simple.

  • Réduisez l'image à 1px par 1px.

    La couleur de la 1px est la couleur moyenne de tout ce que vous avez mis à l'échelle

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X