Modèle:Lo vers rvb
Utilisation et paramètres
[modifier le code]Ce modèle vise à convertir une longueur d'onde (lumière monochromatique) visible en une formule RVB interprétable et affichable par l'ordinateur.
Objectif et contraintes
[modifier le code]La représentations des couleurs monochromatiques sur un écran RGB ne peut être faite que de manière subjective est imparfaite.
Ceci se voit sur le diagramme des couleurs présenté dans le plan xyz définit par le CIE: les longues d'onde forment une courbe extérieure, les couleurs d'un écran trichrome s'inscrivent dans un triangle. Ces deux formes géométriques, de fait, ne coïncident pas (la courbe n'est pas dans le triangle).
Il n'est donc pas possible de faire un calcul qui donne une représentation RVB exacte des longueurs d'onde, mais simplement de permettre une présentation approchée d'une longueur d'onde.
Le modèle n'est qu'une approximation: l'approximation n’est pas dans le modèle en lui-même, mais dans les limitations et la non standardisation des réglages des écrans et des yeux. Un certain nombre de pages parlent de longueurs d'ondes et lorsque l'on veut illustrer une longueur d'onde, plutôt que de recalculer la valeur RVB à chaque fois de manière approximative et à chaque fois de manière différente, il peut être intéressant de centraliser cette fonctionnalité.
L'illustration montre le Triangle des couleurs affichables sur un écran trichrome, que l'on peut aussi dénommer Gamut du système sRGB dans le diagramme xy.
En sRGB, les trois couleurs primaires sont les suivantes:
x | y | λ | pureté d'excitation | |
Blanc (D65) | 0,3127 | 0,3990 | — | 0 |
Rouge | 0,64 | 0,33 | 610 nm | 92% |
Vert | 0,30 | 0,60 | 550 nm | 74% |
Bleu | 0,15 | 0,06 | 466 nm | 93% |
rouge | vert | Bleu | Point blanc | |||||
System | xr | yr | xg | yg | xb | yb | xw | yw |
NTSC | 0.67 | 0.33 | 0.21 | 0.71 | 0.14 | 0.08 | 0.3101 | 0.3162 |
EBU (PAL/SECAM) | 0.64 | 0.33 | 0.29 | 0.60 | 0.15 | 0.06 | 0.3127 | 0.3291 |
SMPTE | 0.630 | 0.340 | 0.310 | 0.595 | 0.155 | 0.070 | 0.3127 | 0.3291 |
La multiplicité des méthodes
[modifier le code]Le support sur lequel vous visualisez ce texte est certainement sRGB (notamment s'il s'agit d'un écran informatique). Il est alors incapable représenter les couleurs d'autres modèles comme les couleurs du modèle Adobe-RGB. Les couleurs représentées sur un écran ou un document imprimé en trichromie ne sont en aucun cas une représentation fidèle!
Le problème est donc particulièrement difficile à gérer lorsque l'on souhaite présenter une couleur précise en mode sRGB.
Ce problème se trouve décrit sur une page en anglais[1] ainsi que sur une page en français[2].
La page en français donne par exemple deux représentations du simple spectre monochromatique sur un écran sRGB, qui ne sont pas plus fausses l'une que l'autre. La différence entre les deux résultats vient des choix que l'on fait lorsque l'on décide de représenter l'image. Le même problème se pose de façon encore plus aigu lorsqu'il s'agit d'imprimer une photographie. Comme dit précédemment, l'espace colorimétrique CMJN d'imprimerie est un espace soustractif, et son gamut est très différent de l'espace sRGB.
Pour le rendu des couleurs, quatre méthodes de rendu différentes existent:
- Le rendu perceptuel essaie de préserver la relation visuelle entre les couleurs de façon à maintenir un résultat aussi naturel que possible pour l'observateur, mais au détriment de la fidélité des couleurs. C'est la méthode utilisé de façon standard dans l'imprimerie japonaise. Elle est plutôt efficace pour les photographies contenant beaucoup de couleurs hors du gamut de l'espace de destination.
- Le rendu saturé produit des couleurs aussi saturées que possible, au détriment de la précision. Cette méthode est surtout utilisée pour les diagrammes et schémas.
- Le rendu colorimétrique relatif compare les couleurs les plus lumineuses des espaces de départ et d'arrivée et déplace les couleurs en conséquence. Les couleurs hors du gamut de l'espace d'arrivée sont transformées dans la couleur la plus proche de l'espace de destination. Cette méthode préserve davantage les couleurs que le rendu perceptuel. C'est la méthode standard en Europe et en Amérique du Nord.
- Le rendu colorimétrique absolu est le plus simple. Il fait une simple transformation mathématique et ramène les valeurs hors du gamut dans l'espace d'arrivée par simple troncature. La fidélité des couleurs qui sont dans le gamut est parfaite, mais les relations impliquant des couleurs hors gamut sont faussées.
Ressources
[modifier le code](Voir aussi Efficacité lumineuse spectrale)
Il existe également des ressources sur internet qui pourraient peut-être être prise en compte, par exemple le site web http:// de pierreontheweb.free.fr/RGB-wavelength/wavelength2RGB.htm
- Les courbes de sensibilités des cônes: Ces courbes sont dérivées des comparaisons visuelles des stimulus colorimétriques, et on retourne à la colorimétrie à la fin.
- Donc, inutile de s'occuper de ces courbes.
- L'espace des couleurs, dans l'approche a trois dimensions CIExyY est un repère dans cet espace. Dans ce repère, la position des droites des lumières monochromatique est publiée.
- Si on passe sur une demi-charretée d'approximations, on peut considérer que sRGB est un autre repère, dans le même espace.
- On peut passer de l'un à l'autre par une matrice de transformation, et vice-versa.
- Seulement, sur un écran d'ordinateur, on ne pourra représenter que les points de l'espace dont les coordonnées sont entre 0 et 1 (exprimées, numériquement entre 0 et 255, l'incrément est inférieur à la différence juste perceptible entre deux couleurs). Les droites des lumières monochromatiques ont toutes des coefficients négatifs sur toute leur longueur. Il faut se donner une règle pour les projeter dans la portion représentable de l'espace total des couleurs. Celle que utilisée pour Efficacité lumineuse spectrale est une des plus simples possibles.
- Une autre méthode à essayer, est de rechercher la pureté d'excitation maximale qu'on puisse appliquer de façon à ce que le résultat, pour toutes les longueurs d'onde, soit représentable sur un écran sRGB. Il y a plus de calculs, mais ça devrait donner un résultat plus satisfaisant visuellement ; sauf si le regard est trop habitué aux graphiques informatiques. Vers 510 nm, la pureté d'excitation de la couleur présentée par l'écran est d'environ 25%, près des primaires rouge et bleue, elle est d'environ 90%.
- Les approximations que citées ci-dessus sont celles de la colorimétrie de base (on pose que les relations sont linéaires, mais en fait, ce n'est pas le cas), celles des réglages des écrans sur lesquels nous n'avons aucune prise, et celle de l'environnement d'observation des écrans. Commençons par les négliger, ça vaut toujours mieux que de mettre des couleurs au pif. Il faut aussi compter avec l'intelligence de la vision, manifestée par l'adaptation chromatique. Elle ne s'intéresse qu'aux relations entre les couleurs. Il importe donc seulement que les couleurs de l'écran soient justes les unes par rapport aux autres (y compris par rapport au blanc de l'écran).
- Dans Efficacité lumineuse spectrale, on est au pas de 10 nm. Pour Couleur, il existe le diagramme avec une interpolation linéaire sur 20 plages (21 valeurs), 15 nm. Vous pouvez voir le résultat:
Tests
[modifier le code]Comment tester ce modèle, et comment obtenir les valeurs « attendues » ?
Plusieurs approches envisageables pour les tests:
- Calculer les valeurs avec une deuxième implémentation du même algorithme
- Vérifier la continuité des couleurs
- Comparer visuellement les couleurs avec un autre modèle de calcul.
- Comparer numériquement les triplets RVB avec d'autres triplets RVB: on risque de ttrouver dinumériquement différentes des couleurs visuellement identiques...
Implémentation
[modifier le code]Sans connaître le problème on pourrait naïvement croire qu'une formule mathématique donnerait une ou différentes formes de conversion de longueur d'onde vers RVB, c'est l'esprit de l'implémentation 1, implémentation totalement insatisfaisante. Dans la pratique, les algorithmes connus se basent donc sur des interpolations linéaires par tranche entre des valeurs de référence.
Aujourd'hui, quatre implémentations ont été proposées, mais elles n'ont pas encore été validées.
Implémentation 1
[modifier le code]Cette implémentation se base sur des formules mathématiques trouvées sur internet. L'implémentation a été supprimée car insatisfaisante. Voir Modèle:Lo vers rvb/algo1.
Implémentation 2
[modifier le code]Cette implémentation est plus compliquée, elle se base sur une interpolation linéaire par tranche trouvée sur internet. Voir Modèle:Lo vers rvb/algo2, pour référence.
Interpolation linéaire sur les tranches:
λ | |||||||||
---|---|---|---|---|---|---|---|---|---|
380 < λ < 380 | 380 < λ < 420 | 420 < λ < 440 | 440 < λ < 490 | 490 < λ < 510 | 510 < λ < 580 | 580 < λ < 645 | 645 < λ < 700 | 700 < λ < 780 | 780 < λ |
Implémentation 3
[modifier le code]Cette implémentation est plus compliquée, elle se base sur une interpolation linéaire par tranche de 10 nanomètres, à partir des valeurs CIE trouvées. Voir Modèle:Lo vers rvb/algo3. (ébauche)
Implémentation 4
[modifier le code]Cette implémentation se base encore sur une interpolation linéaire par tranche de 10 nanomètres, mais ici les valeurs CIE sont abandonnées au profit des valeurs fournies par wikipedia, pour la Vision photopique. Voir Modèle:Lo vers rvb/algo4.
Syntaxe
[modifier le code]{{Lo vers rvb|λ|γ}}
- λ (lambda) : longueur d'onde en nanomèetre
- γ (gamma) : un facteur lié à la luminosité. γ=1
Exemples
[modifier le code]Utilisation
[modifier le code]Longueur d'onde de 400nm
{{Lo vers rvb|400|1}}
Résultat : #3C005B
Longueur d'onde de 500nm
{{Lo vers rvb|500|1}}
Résultat : #00FF7F
Longueur d'onde de 650nm
{{Lo vers rvb|650|1}}
Résultat : #FF0000
Référence & comparaisons aux articles de wikipedia
[modifier le code]Comparaison avec Efficacité lumineuse spectrale
[modifier le code]Comparaison avec Efficacité lumineuse spectrale
Vision photopique
[modifier le code]En vision photopique, pour un rayonnement monochromatique de longueur d'onde , le flux énergétique en watt et le flux visuel correspondant en lumen sont reliés par la relation :
- est la fonction d'efficacité lumineuse spectrale en lm/W (figure 1, en bleu) ; elle s'annule dans les domaines infrarouge et ultraviolet, invisibles à l'œil.
- est l'efficacité lumineuse maximale pour une fréquence de 540 THz, c'est-à-dire une longueur d'onde proche de 555 nm (jaune-vert) pour laquelle l'observateur de référence est le plus sensible.
- est la fonction d'efficacité lumineuse relative spectrale (figure 2, en bleu).
(nm) |
(nm) |
(nm) |
(nm) |
(nm) |
(nm) |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|
400 | 0.000039 | 500 | 0.323 | 600 | 0.631 | 700 | 0.004102 | 800 | 0.000004 | ||
410 | 0.00121 | 510 | 0.503 | 610 | 0.503 | 710 | 0.002091 | 810 | 0.000002 | ||
420 | 0.004 | 520 | 0.71 | 620 | 0.381 | 720 | 0.001047 | 820 | 0.000001 | ||
430 | 0.0116 | 530 | 0.862 | 630 | 0.265 | 730 | 0.00052 | 830 | 0 | ||
440 | 0.023 | 540 | 0.954 | 640 | 0.175 | 740 | 0.000249 | ||||
450 | 0.038 | 550 | 0.99495 | 650 | 0.107 | 750 | 0.00012 | ||||
360 | 0.000004 | 460 | 0.06 | 560 | 0.995 | 660 | 0.061 | 760 | 0.00006 | ||
370 | 0.000012 | 470 | 0.09098 | 570 | 0.952 | 670 | 0.032 | 770 | 0.00003 | ||
380 | 0.000039 | 480 | 0.13902 | 580 | 0.87 | 680 | 0.017 | 780 | 0.000015 | ||
390 | 0.00012 | 490 | 0.20802 | 590 | 0.757 | 690 | 0.00821 | 790 | 0.000007 |
Les couleurs illustrant les longueurs d'onde sont celles se rapprochant le plus possible de la lumière monochromatique sur l'affichage d'un écran sRGB. Le réglage de votre écran affecte le rendu de ces couleurs.
Les coordonnées dans le diagramme de chromaticité des lumières monochromatiques sont connues (Sève 2009, p. 334), de même que celles de l'illuminant D65 et celles des couleurs primaires de la synthèse additive dans l'espace chromatique sRGB.
Pour chaque valeur de longueur d'onde :
- Calculer les coordonnées du point d'intersection entre le segment de droite reliant le point représentant l'illuminant D65 et celui représentant la lumière monochromatique, et le côté du triangle reliant les points représentant les couleurs primaires sRGB.
- Les deux couleurs primaires qui auront une valeur non nulle sont celles des extrémités du côté coupé.
- La proportion entre ces deux couleurs primaires est le rapport des distances du point d'intersection au point représentant la couleur primaire. Si la valeur de l'une est p, celle de l'autre est 1-p.
- Calculer la luminosité du point trouvé en utilisant les coefficients de la Rec. 601, et multiplier les valeurs des primaires par la valeur nécessaire pour que la luminosité soit égale à celle de la valeur d'efficacité spectrale. La valeur de chaque primaire est un nombre compris entre 0 et 1.
- Élever les valeurs de chaque primaire à la puissance 0,25 pour atténuer fortement l'effet de la courbe d'efficacité spectrale, de sorte que les couleurs soient mieux visibles là où l'efficacité est faible.
- Si la luminosité est inférieure à 0,5, afficher la valeur en blanc.
Selon la norme ISO, les valeurs de V(λ) sont définies par pas de 5 nm.
Vision scotopique
[modifier le code]En vision scotopique, la formulation est identique, mais la sensibilité de l'œil humain est différente puisque seuls les bâtonnets permettent la vision. La sensibilité est maximale pour une longueur d'onde de 507 nm (bleu-vert) et l'efficacité lumineuse maximale vaut[4].
Comparaison algo2 & algo3 & algo4
[modifier le code]Modèle | Couleurs | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
algo2 | 410 | 431 | 451 | 472 | 493 | 513 | 534 | 554 | 575 | 596 | 616 | 637 | 658 | 678 | 699 | 719 | 740 | |
algo3 | 410 | 431 | 451 | 472 | 493 | 513 | 534 | 554 | 575 | 596 | 616 | 637 | 658 | 678 | 699 | 719 | 740 | |
algo4 | 410 | 431 | 451 | 472 | 493 | 513 | 534 | 554 | 575 | 596 | 616 | 637 | 658 | 678 | 699 | 719 | 740 |
Comparaison à un article du wikipedia anglophone
[modifier le code]Color | Frequency | Wavelength | min | moyenne | max | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
violet | 668–789 THz | 380–450 nm | violet | violet | 380 | 387 | 394 | 401 | 408 | 415 | 422 | 429 | 436 | 443 | 450 | |||||||
blue | 606–668 THz | 450–495 nm | blue | blue | 450 | 455 | 459 | 464 | 468 | 473 | 477 | 482 | 486 | 491 | 495 | |||||||
green | 526–606 THz | 495–570 nm | green | green | 495 | 503 | 510 | 518 | 525 | 533 | 540 | 548 | 555 | 563 | 570 | |||||||
yellow | 508–526 THz | 570–590 nm | yellow | yellow | 570 | 572 | 574 | 576 | 578 | 580 | 582 | 584 | 586 | 588 | 590 | |||||||
orange | 484–508 THz | 590–620 nm | orange | orange | 590 | 593 | 596 | 599 | 602 | 605 | 608 | 611 | 614 | 617 | 620 | |||||||
red | 400–484 THz | 620–750 nm | red | red | 620 | 633 | 646 | 659 | 672 | 685 | 698 | 711 | 724 | 737 | 750 |
La documentation de ce modèle est générée par le modèle {{Documentation}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer) et la page de test (créer).
Voir les statistiques d'utilisation du modèle sur l'outil wstat.
- mintaka.sdsu.edu/GF/explain/optics/rendering.html
- www.photo-lovers.org/color.shtml.fr
- Sève 2009, p. 334 ; ISO 11664-1:2007 (CIE S 014-1/E:2006).
- Sève 2009, p. 64.