Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Contributor: jeancoquetHarmonisation des couleurs pour un ensemble d'images
#1
Bonjour à tous,

J’ose enfin poser une question sur le forum après plus d’un an à lire darktable.fr …
Une question me chagrine depuis un moment et aucune de mes recherches n’a abouti à une réponse concluante pour faire cela sous darktable. Désolé par avance si elle a déjà été posée sur le forum.

Voilà, disons que je souhaite travailler sur une série d’images et qu’elles aient une cohérence dans leur palette de couleurs. Par exemple, le rouge d’une voiture sur photo soit à-peu-près similaire au t-shirt rouge d’une personne sur une autre photo, etc.

Quand je parle de couleurs similaires, je parle aussi bien de luminance, de teinte et de saturation. L’idée ici n’est pas d’avoir des couleurs fidèles à la réalité mais d’assurer une cohérence entre différentes images. Par contre je ne parle pas de changer complètement une couleur en une autre : un bleu resterait un bleu, juste légèrement diffèrent.

Avec darktable, je vois seulement deux modules qui pourraient peut-être arriver à ce résultat (et encore). Le premier est le module « color mapping » mais il est très imprécis, il n’est pas reproductible (le clustering k-means est non-déterministe) et il propose très peu d’options de contrôle. Il y aurait aussi le module « color zones » mais c’est dur d’atteindre des résultats précis, oblige à comparer côte à côte deux images  et quasiment impossible d’automatiser le processus.

Idéalement, le module prendrait en entrée une palette de couleurs et si un pixel de l’image serait plus ou moins similaire a une des couleurs de cette palette alors il tendrait vers cette couleur. J’espère que je suis claire.

Qu’en pensez-vous ? Y a-t-il un module permettant de faire ça que je n’aurais pas vu ? Avez-vous une solution ?

Merci d’avance,
Jean
Répondre
#2
Il y a un module exactement pour ça : « mappage des couleurs », qui s'occupe des teintes et de l'histogramme, même si je trouve le résultat moche en général.

https://www.youtube.com/watch?v=l2CY6lrtsgs
Aurélien, photographe portraitiste à Montréal
Spécialiste des maths sur pixels, enragé de la précision colorimétrique.
Fedora 29 | darktable git/master | Nikon FM, D5300, D810
Pas de messages privés SVP, sauf sujets sensibles.
Répondre
#3
(18-01-19, 05:19)aurelienpierre a écrit : Il y a un module exactement pour ça : « mappage des couleurs », qui s'occupe des teintes et de l'histogramme, même si je trouve le résultat moche en général.

https://www.youtube.com/watch?v=l2CY6lrtsgs

Merci beaucoup pour ta réponse. Justement ce module est horrible je trouve, pour plusieurs raisons:
1) il est impossible de choisir ses propres couleurs, car il calcule automatiquement les clusters de couleurs
2) il utilise un clustering k-means, qui n’est pas déterministe. Le résultat n’est donc jamais le même à chaque fois qu’on fait tourner l’algo.
3) il ne permet pas d’affiner couleur par couleur.

Bref un module quasiment impossible à utiliser pour avoir un résultat décent…
Répondre
#4
On est d'accord :-)
Aurélien, photographe portraitiste à Montréal
Spécialiste des maths sur pixels, enragé de la précision colorimétrique.
Fedora 29 | darktable git/master | Nikon FM, D5300, D810
Pas de messages privés SVP, sauf sujets sensibles.
Répondre
#5
C'est vrai que mappage des couleurs est assez inutilisable en l'état.. J'avoue que je n'avais même pas pensé à cet usage, je lui attachais plus un usage d'effet visuel.

Tu peux essayer d'utiliser la table de correspondance des couleurs sinon :
Dans ton image destination, commence par enlever tous les patchs de la table (avec clic droit), puis ajoute des patchs pour les couleurs que tu veux harmoniser (avec maj + clic gauche).
Ensuite, va sur ton image source, et avec la pipette note dans un coin les valeurs lab des zones de couleurs similaires à tes patchs.
Ensuite, tu retournes dans ton images destination sur ta table, et tu peux rentrer les valeurs lab que tu as noté pour chacun des patchs (en te mettant bien en mode "absolu"). Si tu ne veux pas de dérive de luminosité, laisse la valeur L telle qu'elle est et rentre juste les valeurs a et b
Si d'autres couleurs changent alors que tu aimerais qu'elles restent tranquilles, ajoute simplement des patchs pour celles ci, sans changer les valeurs sur le patch.

Voilà, j'espère que ça pourra t'aider !
Répondre
#6
Je dis peut-être une connerie, peut-être de faisant une "table correspondance couleurs".
Répondre
#7
(18-01-19, 09:15)jpg54 a écrit : Je dis peut-être une connerie, peut-être de faisant une "table correspondance couleurs".

Oui, tu dis une connerie Big Grin 

La table de correspondance des couleurs suppose une correspondance pixel à pixel entre deux images : c'est en fait un étalonnage par fonction de transfert implicite (on n'a pas son équation, elle est juste définie localement). Entre deux images différentes, le module mappage des couleurs a la bonne approche (d'après ce que nous dit Jean) : le clustering de K-mean (autrement dit : de l'apprentissage machine supervisé assez basique). Ce qui foire, c'est probablement la manière dont il applique ce qu'il a appris, d'une image à l'autre.
Aurélien, photographe portraitiste à Montréal
Spécialiste des maths sur pixels, enragé de la précision colorimétrique.
Fedora 29 | darktable git/master | Nikon FM, D5300, D810
Pas de messages privés SVP, sauf sujets sensibles.
Répondre
#8
Alors en effet, la méthode proposée par rawfiner peut marcher. J’ai essayé, et même si c’est fastidieux et difficilement automatisable, j’ai quand même un peu réussi à avoir le même bleu sur mes deux images (avec des couleurs bizarres de temps en temps). Rien de fou cependant.

Apres mes tests, j’en suis arrivé à la conclusion que je devrais peut-être me coder mon propre module. Smile

Merci à vous trois pour vos réponses.
Répondre
#9
C'est bien ce que je pensais la "table correspondance couleurs" bien que c'est très fastidieux. Par contre je n'avais pas vu la proposition de @RawFiner et son astuces.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)