Mélange de deux vecteurs de couleur RVB pour obtenir la résultante

j'essaie de mélanger deux vecteurs source RVB pour créer un troisième" vecteur résultant " qui est un mélange intuitif des deux premiers.

idéalement, je serais capable d'imiter "les vraies caractéristiques de mélange de peinture", mais pour la simplicité, j'essaie de trouver une méthode où la résultante ressemble intuitivement à ce que vous obtiendriez en combinant les deux sources de RVB.

au minimum, ces caractéristiques:

ROUGE + NOIR = ROUGE FONCÉ

ROUGE + BLANC = ROUGE CLAIR

optimalement, également avec de vraies caractéristiques de peinture:

ROUGE + BLEU = VIOLET

ROUGE + JAUNE = ORANGE

( ... )

--

je le fais actuellement de la" manière paresseuse " en ajoutant les deux vecteurs source RVB/255, puis en normalisant (et en multipliant par 255). Ainsi, l'utilisation de ceci: [Rouge = * 255] + [Bleu = * 255] donne Magenta=/sqrt(2) * 255, bien que les autres couleurs soient moins intuitives ou même visibles... J'ai besoin d'une meilleure méthode! S'il vous plaît aider :-)

13
demandé sur yos 2009-12-12 05:15:07

4 réponses

Est ce que vous propose le même comme une moyenne pondérée?

Average R = w1*R1 + w2*R2 + w3*R3 + ... + wn*Rn

Average G = w1*G1 + w2*G2 + w3*G3 + ... + wn*Gn

Average B = w1*B1 + w2*B2 + w3*B3 + ... + wn*Bn

les w sont les fractions de pondération et leur somme est égale à 1.

R1 est la composante rouge de la première couleur à mélanger, par exemple.

donc si vous vouliez mélanger deux couleurs de manière égale, ce serait:

Average R = 0.5*R1 + 0.5*R2

Average G = 0.5*G1 + 0.5*G2

Average B = 0.5*B1 + 0.5*B2

comme pour la cartographie de la couleur résultante à une couleur nommée ("rouge foncé") peut-être juste faire une table de recherche et de choisir le plus proche?

15
répondu John 2009-12-12 02:22:00

le problème est que vous essayez de relier deux théories de couleur différentes. RVB est la théorie de la couleur additive (la lumière colorée est émise par la source). Dans ce cas, plus vous ajoutez de spectre au mélange, plus vous vous rapprochez du blanc.

pour "mélange de peinture" vous devez émuler la théorie soustractive de la couleur qui régit la façon dont les couleurs réfléchies sont mélangées. (c'est à dire de la lumière réfléchie comme les peintures, les différentes surfaces etc.) Voici un overview .

le JavaScript sur cette page est un indice quant à la façon dont vous pourriez procéder pour convertir RGB En CMYK.

8
répondu Paul Sasik 2015-05-05 16:14:22

mélange de couleurs RVB pour simuler le mélange de couleurs soustractives (i.e., mélange de type peinture) peut être fait en transformant les valeurs RVB aux courbes de réflectance spectrale, puis faire le mélange là. Cette question est très similaire à une autre, stackoverflow.com/questions/10254022 / , où la solution est examinée plus en détail.

2
répondu Scott Burns 2017-05-23 11:53:20

je pense que vous devriez vraiment définir ce qui est " + " dans votre arrangement de couleur.

basé sur vos exigences, je les ai traduits en codes de couleur hexadécimaux estimés, (la répression rgb peut être déduite facilement).

RED     + BLACK   = DARK RED  
#ff0000 + #000000 = #800000
RED     + WHITE   = LIGHT RED
#ff0000 + #ffffff = #ff8080

optimally, also with real paint characteristics:
RED     + BLUE    = PURPLE
#ff0000 + #0000ff = #800080
RED     + YELLOW  = ORANGE
#ff0000 + #ffff00 = #ff8000

Je ne vois pas de modèle défini que vous pouvez élaborer quelques formules pour atteindre cela.

les méthodes de John et Nils se rapprocheront probablement des couleurs mais probablement pas des valeurs exactes. Je suggère vous leur donner un essai.

EDIT:

J'ai mis à jour les mauvais codes de couleur. Eh bien, il ne fait beaucoup plus de sens aujourd'hui.

0
répondu o.k.w 2009-12-12 04:20:46