Algorithme de mélange de couleurs dans un espace colorimétrique de peinture
Lors du mélange de peintures physiques, la couleur résultante diffère de ce à quoi on pourrait s'attendre lors du mélange de couleurs sur un écran numérique. En effet, la peinture se mélange par absorption, alors que le mélange numérique des couleurs implique une émission.
Absorption de la peinture et mélange numérique des couleurs
Algorithme de mélange de couleurs dans l'espace colorimétrique de la peinture
Mélange des couleurs dans une peinture L’espace colorimétrique consiste à soustraire les longueurs d’onde absorbées de la lumière blanche (255, 255, 255). Par exemple, mélanger de la peinture bleue (absorbant le rouge et le vert) avec de la peinture jaune (absorbant le bleu) donnerait un vert boueux.
Solution alternative utilisant l'espace colorimétrique HLS
Alternativement , l'utilisation de l'espace colorimétrique HLS (Teinte, Légèreté, Saturation) peut fournir des résultats de mélange de couleurs plus intuitifs, indépendants des propriétés d'absorption physique de paint.
Code Python pour le mélange de couleurs dans l'espace colorimétrique HLS
Vous trouverez ci-dessous une fonction Python qui calcule la moyenne entre deux couleurs dans l'espace colorimétrique HLS :
import math from colorsys import rgb_to_hls, hls_to_rgb def average_colors(rgb1, rgb2): h1, l1, s1 = rgb_to_hls(rgb1[0]/255., rgb1[1]/255., rgb1[2]/255.) h2, l2, s2 = rgb_to_hls(rgb2[0]/255., rgb2[1]/255., rgb2[2]/255.) s = 0.5 * (s1 + s2) l = 0.5 * (l1 + l2) x = cos(2*pi*h1) + cos(2*pi*h2) y = sin(2*pi*h1) + sin(2*pi*h2) if x != 0.0 or y != 0.0: h = atan2(y, x) / (2*pi) else: h = 0.0 s = 0.0 r, g, b = hls_to_rgb(h, l, s) return (int(r*255.), int(g*255.), int(b*255.))
En utilisant cette fonction, nous pouvons approximer le résultat du mélange de peinture bleue et jaune, par exemple exemple :
>>> average_colors((255, 255, 0), (0, 0, 255)) (0, 255, 111)
Cette approche fournit un résultat de mélange de couleurs plus intuitif qui n'est pas limité par les propriétés d'absorption des peintures physiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!