Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mathematiques des images

29 réponses
Avatar
Alban Taraire
Bonsoir,

ayant récement re-découvert les joies du mixage de la couche L d'une image
avec l'image composite elle-meme, j'ai envie de programmer un petit plugin
pour Bibble qui me fasse ça directement sans passer par Photoshop.

Pour info, voila ce que je fais sous PS :

- j'ouvre une image RGB quelconque
- je la passe en mode LAB
- dans channels, je n'affiche que la couche L
- copier coller de cette couche (noir et blanc donc) sur un calque au dessus
de mon image background qui n'a pas bougé (donc toujours en couleurs comme à
l'origine)
- je baisse l'opacité de ma couche L (en général entre 10% et 40%) en mode
normal
- je sauve le tout pour le web et obtient une image aux couleurs plus
neutres, aux détails sombres rehaussés, globalement améliorée.

Sous Bibble je ne peux pas compter sur les calques (c'est pas son métier,
les calques sous Bibble c'est plutot des masques de réglage) par contre je
peux sans problème mixer mes couches en interne, donc juste appliquer une
fonction à mes pixels de départ, avec en paramètre les pixels de ma couche L
et l'opacité choisie.

La question étant que je n'ai aucune idée réelle de la fonction à appliquer.
Une somme pondérée par l'opacité ? Autre chose ?

Est-ce qu'il y a des sites "de base" pour ce genre de questions on teh
Intertubes ?

Merci d'avance,

--
Alban

10 réponses

1 2 3
Avatar
Charles VASSALLO
Alban Taraire wrote:


ayant récement re-découvert les joies du mixage de la couche L d'une image
avec l'image composite elle-meme, j'ai envie de programmer un petit plugin
pour Bibble qui me fasse ça directement sans passer par Photoshop.



Sais-tu que c'est quasiment la même chose que de passer en niveaux de
gris ou d'isoler la couche L ? On ne s'en vante nulle part sans doute
parce que ça fait moins branché, mais c'est comme ça.

Ce n'est pas tout à fait la même chose car il y a comme une petite
anomalie dans Photoshop : en LAB, si on désature (c.à.d. qu'on remplit
les couches a et b de gris 128), puis qu'on recopie la couche L dans la
palette des calques, on n'obtient pas tout à fait la même chose que
l'image composite désaturée. L'écart sur les rvb va de 0 à 10, avec une
moyenne de l'ordre de 5 (la copie de la couche L étant plus claire).


Pour info, voila ce que je fais sous PS :
[recopier la couche L avec une opacité de 10-40% au dessus de l'image RGB]
- je sauve le tout pour le web et obtient une image aux couleurs plus
neutres, aux détails sombres rehaussés, globalement améliorée.



Tu m'accorderas de discuter un peu le "globalement amélioré", mais hein,
des goûts et des couleurs, pourquoi pas? Incidemment, je ne vois pas
pourquoi les détails sombres seraient rehaussés : il faudrait un exemple.

Sous Bibble je [...] peux sans problème mixer mes couches en interne,
donc juste appliquer une fonction à mes pixels de départ,
avec en paramètre les pixels de ma couche L et l'opacité choisie.

La question étant que je n'ai aucune idée réelle de la fonction à appliquer.
Une somme pondérée par l'opacité ? Autre chose ?

Est-ce qu'il y a des sites "de base" pour ce genre de questions on teh
Intertubes ?



Les formules de passage des RVB aux Lab se trouvent facilement, mais
comme ça dépasse un peu le niveau d'une règle de trois, tu ne trouveras
pas ça dans des sites «de base». Le site de référence est celui de Bruce
Lindbloom, mais bon, de là à le conseiller... Enfin, tu es prévenu :
http://www.brucelindbloom.com/

Mais on peut faire plus simple. Essaie un calque gris de couleur unie en
gris (n'importe lequel) en mode teinte, saturation ou couleur au-dessus
de ton image RVB. Ça ne donne-t-il pas une bonne imitation du passage en
niveaux de gris ? Si ça te va, diminue l'opacité de calque. Cela ne
donne-t-il pas des résultats fort voisins de ta tambouille à toi ?

OK, si tu es toujours d'accord, la question suivante est : comment
simuler dans Bibble ce calque couleur unie gris en mode saturation ? Le
ciel aidant, il se trouve qu'on obtient **exactement** la même chose
avec un bon vieux mélangeur de couches en monochrome avec les
proportions R:30% + V:58% + B:12%. Là, tu devrais te sentir mieux...

Au point où on en est (si tu suis toujours), on a ajouté un peu de gris
à ton image couleur, ce gris étant une fonction linéaire bien
particulière des trois composantes RVB. Mais pourquoi en rester là et ne
pas essayer d'autres combinaisons ? Cela revient à refaire ta manip non
pas avec une copie de ta couche L, mais avec de simples copies des
couches RVB dans des proportions ajustables à ton goût. Bon, d'accord,
c'est moins noble que de faire un peu joujou avec le Lab, mais je crois
que ça devrait marcher aussi bien.

:-)

charles
Une petite théorie des couleurs plus sympa que Lindbloom:
http://www.oitregor.com/numeric/theorie/
Avatar
Stephane Legras-Decussy
"Alban Taraire" a écrit dans le message de news:
h3q412$gui$
- je baisse l'opacité de ma couche L (en général entre 10% et 40%) en mode
normal



je confirme tout ce qu'à dit charles...

le mode normal c'est juste une moyenne ponderée...

- je sauve le tout pour le web et obtient une image aux couleurs plus
neutres, aux détails sombres rehaussés, globalement améliorée.



là je tique... ta manip telle que tul a décris ne fait juste
qu'une petite desaturation...
Avatar
Stephane Legras-Decussy
"Stephane Legras-Decussy" a écrit dans le message de news:
4a60d2e9$0$414$
là je tique... ta manip telle que tul a décris ne fait juste
qu'une petite desaturation...



exemple :

L = 0.3R + 0.58V + 0.12B

pour la couche R :

R = 0.8R + 0.2L (20% de L)

ça donne :

R = 0.86R + 0.116V + 0.024B

pas de terme en puissance de R, pas de changement de
dynamique...
Avatar
Alban Taraire
Stephane Legras-Decussy wrote:

là je tique... ta manip telle que tul a décris ne fait juste
qu'une petite desaturation...





C'est pas impossible, encore une fois je ne maitrise pas du tout le coté
théorique de la chose. Je constate juste que le résultat me plait :)

Ceci dit, la différence, peut-etre, avec une simple désaturation pourrait
etre que si je mets un filtre gris uniforme, toutes les valeurs seront
désaturées de la meme manière, alors qu'avec la couche L le changement de
saturation dépendra du pixel lui-meme, non ?

Un point sombre sera moins "relevé" qu'un point clair ?

J'ai posté une image exemple ici

http://cjoint.com/?hseD2aNFbc

A vue de nez, j'ai l'impression que par exemple le fond bleu sous le clavier
est légèrement plus contrasté que l'original, la peau de Vander rend "mieux"
(mais ça peut n'etre qu'une question de saturation, possible) par contre le
noi du fond n'a pas beaucoup bougé, il n'est pas devenu gris.

Je n'ai pas tout tout compris au post de Charles donc je vais le relire et
faire quelques tests.

Merci,

--
Alban
Avatar
Alban Taraire
Charles VASSALLO wrote:

Sais-tu que c'est quasiment la même chose que de passer en niveaux de
gris ou d'isoler la couche L ? On ne s'en vante nulle part sans doute
parce que ça fait moins branché, mais c'est comme ça.



Je viens de faire un test rapide entre mon image désaturée et la couche L.
La meme image que dans le comparatif utilisé avec Stéphane.
Je ne vois pas trop comment tu peux dire que ces deux images sont la meme
chose, ou quasi la meme chose.

http://cjoint.com/?hseXKQfv6f

RGB à gauche, L à droite

Justement dans les parties qui m'intéressent (la zone en dessous du clavier,
à gauche du genou qui dépasse, ou le drapé du dos de la fille dans le fond,
etc.) on voit clairement que la couche L est plus contrastée que l'image
désaturée, et c'est ça qui justement apportera à l'image finale son
amélioration du contraste.

Ce n'est pas tout à fait la même chose car il y a comme une petite
anomalie dans Photoshop : en LAB, si on désature (c.à.d. qu'on remplit
les couches a et b de gris 128), puis qu'on recopie la couche L dans la
palette des calques, on n'obtient pas tout à fait la même chose que
l'image composite désaturée. L'écart sur les rvb va de 0 à 10, avec une
moyenne de l'ordre de 5 (la copie de la couche L étant plus claire).



Mais je ne comprends pas bien pourquoi tu veux désaturer avant de recopier ?
Je ne fais que recopier la couche L, je désature rien du tout ! Évidement si
tu désatures en plus la couche L, j'imagine que son contraste va baisser,
mais quel intéret ?

Tu m'accorderas de discuter un peu le "globalement amélioré", mais hein,
des goûts et des couleurs, pourquoi pas? Incidemment, je ne vois pas
pourquoi les détails sombres seraient rehaussés : il faudrait un exemple.



Voir le lien plus haut ou celui dans am réponse à Stéphane. Maintenant, je
t'accorde complètement la différence potentielle des gouts :)

Les formules de passage des RVB aux Lab se trouvent facilement, mais
comme ça dépasse un peu le niveau d'une règle de trois, tu ne trouveras
pas ça dans des sites «de base». Le site de référence est celui de Bruce
Lindbloom, mais bon, de là à le conseiller... Enfin, tu es prévenu :
http://www.brucelindbloom.com/



OK merci je vais voir ça ! Ceci dit je pense qu'on s'est encore mal compris.
Je ne cherche pas à passer de RGB en LAB, si je demande au programme de me
donner la couche L il me la donnera gentiment en faisant les calculs tout
seul comme un grand.
Ce que je veux savoir c'est comment combiner les infos de cette couche avec
mon RGB. Stéphane me dit que ce n'est qu'une moyenne pondérée, ça doit quand
meme pas etre sorcier...

Mais on peut faire plus simple. Essaie un calque gris de couleur unie en
gris (n'importe lequel) en mode teinte, saturation ou couleur au-dessus
de ton image RVB. Ça ne donne-t-il pas une bonne imitation du passage en
niveaux de gris ? Si ça te va, diminue l'opacité de calque. Cela ne
donne-t-il pas des résultats fort voisins de ta tambouille à toi ?



Mais je ne cherche absolument pas à obtenir une image en niveaux de gris !
C'est une image couleur que je veux.

OK, si tu es toujours d'accord, la question suivante est : comment
simuler dans Bibble ce calque couleur unie gris en mode saturation ? Le
ciel aidant, il se trouve qu'on obtient **exactement** la même chose
avec un bon vieux mélangeur de couches en monochrome avec les
proportions R:30% + V:58% + B:12%. Là, tu devrais te sentir mieux...

Au point où on en est (si tu suis toujours), on a ajouté un peu de gris
à ton image couleur, ce gris étant une fonction linéaire bien
particulière des trois composantes RVB. Mais pourquoi en rester là et ne
pas essayer d'autres combinaisons ? Cela revient à refaire ta manip non
pas avec une copie de ta couche L, mais avec de simples copies des
couches RVB dans des proportions ajustables à ton goût. Bon, d'accord,
c'est moins noble que de faire un peu joujou avec le Lab, mais je crois
que ça devrait marcher aussi bien.



Bon, comme il semble qu'on parle de deux choses différentes, je te laisse
revoir mes exemples et revoir ta réponse, parce que là on est pas du tout
sur la meme longueur d'ondes.
Note que ça aurait été plus simple si j'avais posté des exemples dès le
début, mais il se faisait tard, désolé :)

Une petite théorie des couleurs plus sympa que Lindbloom:
http://www.oitregor.com/numeric/theorie/



Merci !

--
Alban
Avatar
Charles VASSALLO
Alban Taraire wrote:

Je viens de faire un test rapide entre mon image désaturée et la couche L.
La meme image que dans le comparatif utilisé avec Stéphane.
Je ne vois pas trop comment tu peux dire que ces deux images sont la meme
chose, ou quasi la meme chose.

http://cjoint.com/?hseXKQfv6f

RGB à gauche, L à droite

Justement dans les parties qui m'intéressent (la zone en dessous du clavier,
à gauche du genou qui dépasse, ou le drapé du dos de la fille dans le fond,
etc.) on voit clairement que la couche L est plus contrastée que l'image
désaturée, et c'est ça qui justement apportera à l'image finale son
amélioration du contraste.



J'ai été incapable de reproduire tes passages en N&B, aussi bien pour ce
que tu appelles "désaturation" que ce que tu appelles "copie couche L".
Difficile de discuter du quart de cheveu par la suite !

Pour moi, compte-tenu de ce que tu veux faire, ajouter un peu de couche
L ou un peu de l'image en gris naturels conduit à des résultats
indiscernables... et je préfère ce qu'on obtient avec une simple
désaturation (mais c'est mon goût à moi)

Charles
Avatar
Charles VASSALLO
Alban Taraire wrote:
[cherche des formules pour recopier la couche L dans une image RVB]



En fait, ce n'est pas la composante L que tu cherches mais le Y du trio
XYZ. Les formules sont dans
http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html

En gros, ce sera quelque chose comme
Y = a*(R/255)^gamma + b*(V/255)^gamma + c*(B/255)^gamma
où 'gamma' est le gamma de l'expace colorimétrique de ton image RVB (si
c'est sRGB, il faut prendre les formules ad hoc, un peu plus
compliquées), et le gris à mettre dans les trois couches est
R=V=B%5*Y^(1/gamma)

Les coefficients a,b,c sont à pêcher dans la page de Lindbloom.

Mais achtung achtung achtung ! comme il y a décidément un truc louche du
côté de l'affichage des couches en mode LAB (je lance un post à ce sujet
dans frpln), je crains fort qu'on n'obtienne pas exactement ce qu'on
appelle «copie de la couche L»

Charles
Avatar
benoit.sansspam
Alban Taraire wrote:


http://cjoint.com/?hseD2aNFbc

A vue de nez, j'ai l'impression que par exemple le fond bleu sous le clavier
est légèrement plus contrasté que l'original, la peau de Vander rend "mieux"
(mais ça peut n'etre qu'une question de saturation, possible) par contre le
noi du fond n'a pas beaucoup bougé, il n'est pas devenu gris.



Bonjour,


Je ne sais pas dans quel sens tu vas mais je vais t'avouer que
la photo de gauche est bien plus proche de la vérité selon moi. Tu as un
gars qui transpire dans une atmosphère froide, à droite, ou dans une
atmosphère chaude, à gauche. Un mec qui transpire parce qu'il a chaud,
il est rouge et non bleu, il est à gauche.

--
Benoît

Avec des fumeurs c'est difficile de s'arrêter. Avec des branleurs,
là, par contre, c'est difficile de continuer.
Avatar
Alban Taraire
Charles VASSALLO wrote:

J'ai été incapable de reproduire tes passages en N&B, aussi bien pour ce
que tu appelles "désaturation" que ce que tu appelles "copie couche L".
Difficile de discuter du quart de cheveu par la suite !



Ben dans ce que j'appelle désaturé, j'ai pris mon image RGB de base et j'ai
tout simplement fait Image/Adjustments/Desaturate.

Dans ce que j'appelle copie couche L, j'ai passé mon image en mode LAB
(Image/Mode/Lab color), puis je suis allé dans l'onglet Channels (a coté de
Layers) et cliqué sur Lightness, ce qui désélectionne les couches a et b, me
laissant afficher une image en noir et blanc qui est la représentation de ma
couche L.

Ensuite pour la partie "mixage", je retourne sur l'onglet Layers, je copie
l'image NB que je vois (ctrl+a, ctrl+c) je crée un nouveau calque, puis je
colle mon image NB (ctrl-v).
Puis je règle l'opacité de ce nouveau layer qui est en NB, et l'image
couleur du dessous réapparait, "améliorée" (selon mon gout) avec un meilleur
contraste sur les parties citées, et un léger changement des saturations
(peau, bleu etc).
Note que jusqu'ici je suis toujours en LAB. Quand je "save for web", l'image
repasse en RGB.

Veux-tu que je t'envoie le PSD pour voir ?

Pour moi, compte-tenu de ce que tu veux faire, ajouter un peu de couche
L ou un peu de l'image en gris naturels conduit à des résultats
indiscernables... et je préfère ce qu'on obtient avec une simple
désaturation (mais c'est mon goût à moi)



C'est un peu contradictoire, si c'est indiscernable, qu'est-ce qui te fait
préférer l'un à l'autre ? ;)

--
Alban
Avatar
Delestaque
Alban Taraire wrote:
Charles VASSALLO wrote:

J'ai été incapable de reproduire tes passages en N&B, aussi bien
pour ce que tu appelles "désaturation" que ce que tu appelles "copie
couche L". Difficile de discuter du quart de cheveu par la suite !



Ben dans ce que j'appelle désaturé, j'ai pris mon image RGB de base
et j'ai tout simplement fait Image/Adjustments/Desaturate.

Dans ce que j'appelle copie couche L, j'ai passé mon image en mode LAB
(Image/Mode/Lab color), puis je suis allé dans l'onglet Channels (a
coté de Layers) et cliqué sur Lightness, ce qui désélectionne les
couches a et b, me laissant afficher une image en noir et blanc qui
est la représentation de ma couche L.

Ensuite pour la partie "mixage", je retourne sur l'onglet Layers, je
copie l'image NB que je vois (ctrl+a, ctrl+c) je crée un nouveau
calque, puis je colle mon image NB (ctrl-v).
Puis je règle l'opacité de ce nouveau layer qui est en NB, et l'image
couleur du dessous réapparait, "améliorée" (selon mon gout) avec un
meilleur contraste sur les parties citées, et un léger changement des
saturations (peau, bleu etc).
Note que jusqu'ici je suis toujours en LAB. Quand je "save for web",
l'image repasse en RGB.

Veux-tu que je t'envoie le PSD pour voir ?

Pour moi, compte-tenu de ce que tu veux faire, ajouter un peu de
couche L ou un peu de l'image en gris naturels conduit à des
résultats indiscernables... et je préfère ce qu'on obtient avec une
simple désaturation (mais c'est mon goût à moi)



C'est un peu contradictoire, si c'est indiscernable, qu'est-ce qui te
fait préférer l'un à l'autre ? ;)



n'ayant pas le courage de relire tout, la couche L est superposée en quel
mode de fusion ?
Comment y a t il un mode de travail entre les pixels si on est en mode
normal ?


--
G.Ricco
1 2 3