Aurélien Pierre

Lectures en théorie de la couleur

Quelles ressources peuvent être trouvées en ligne et dans les bibliothèques pour aider à comprendre un peu de théorie de la couleur ?

Préambule

Qu’est-ce que la théorie de la couleur ?

La théorie de la couleur a 2 aspects :

  • scientifique, lié historiquement à la physique de la lumière, mais à présent d’avantage apparenté à la psychologie, qui essaie de relier les signaux physiques avec des stimuli sensoriels,
  • artistique, qui étudie la sémantique de la couleur (essentiellement culturelle) et comment elle agit pour créer des ombrages crédibles en peinture ou des ambiances dans les photographies et le cinéma.

Il faut mentionner que l’aspect scientifique a été aussi étudié par des artistes (comme Munsell ). La discipline mélange des notions de :

Idées fausses communes

Cette page regroupe la plupart des erreurs et des idées fausses sur Ansel que l’on peut trouver sur internet.

Je dois être un expert / ingénieur pour utiliser Ansel

Mes vidéos  et mes articles contiennent à la fois la partie “quoi faire” et la partie “pourquoi/comment”. Le “pourquoi/comment” est typiquement technique ou même théorique, et sert à justifier le “quoi faire”. Il y a plusieurs raisons pour lesquelles je donne les deux :

Welcome Ansel GPT !

Annonce

Après avoir finalement câblé tout le site web et la documentation à un flux de travail de traduction étanche (en utilisant po4a par-dessus Hugo), qui utilise exactement les mêmes outils et logique que l’application Ansel, j’ai eu l’idée de traduire automatiquement les traductions vides, d’abord à partir des fichiers de traduction logicielle, puis via l’API ChatGPT, qui fait un très bon travail pour traduire la syntaxe Markdown.

Travaillant seul, vous ne pouvez pas compter sur la paresse sociale , donc vous devez être astucieux. Vous pouvez consulter la liste des choses que j’ai déjà automatisées en arrière-plan pour Ansel.

Numérisation de négatifs argentiques

Film Negative

Alain Oguse a appris le tirage photographique avec Claudine  et Jean-Pierre Sudre  à la fin des années 1960, et a effectué son début de carrière en photographie commerciale. Après avoir pris sa retraite, il a commencé à chercher des méthodes permettant de retrouver le grain argentique dans les numérisations de négatifs, avec la même netteté et qualité que ce qu’il obtenait en lumière quasi-ponctuelle sous l’agrandisseur, dans les années 1970.

Bienvenue à la documentation développeurs !

Développement

En décembre 2019, j’ai demandé à quelqu’un de s’occuper de fournir des packages AppImages  pour Darktable. Le bénéfice évident aurait été de permettre des tests anticipés, avant la sortie, de la part de personnes qui ne peuvent pas construire le code source elles-mêmes, afin de fournir espérons-le des retours précoces et aider à déboguer avant la publication. Cela n’a jamais été une priorité, ce qui signifie qu’il était acceptable d’avoir une ruée avant et après la sortie pour corriger les bugs.

Balance(s) des blancs

Nous savons tous ce qu’est le “blanc”. On peut se représenter une feuille de papier. Nous savons qu’elle est blanche parce que nous l’avons appris. Mais si vous placez la feuille de papier sous un soleil d’été, ou sous un ciel nuageux, ou à la maison équipée d’ampoules domestiques chaudes, ce blanc va changer de couleur. Cela pourrait vous déranger pendant les premières secondes, puis vous oublieriez rapidement : votre cerveau va adapter. Mais (s’)adapter (à) quoi ?

Dépannage des problèmes de couleur

Cela s’appliquera à Darktable en amont comme à Ansel car ils partagent la majeure partie de leur pipeline de couleurs. La procédure suivante vous aidera à résoudre vos problèmes de couleur, qu’il s’agisse d’une apparence incohérente entre l’exportation et l’aperçu, ou entre écran et imprimé, ou entre 2 applications.

Configurer correctement votre bureau

Le problème inhérent de la couleur est qu’elle n’existe que comme une perception, et cette perception est très contextuelle et fluide. Si je prends n’importe quelle nuance de couleur et que je l’affiche sur un fond blanc, gris moyen ou noir, elle n’apparaîtra pas de la même manière, même si un colorimètre confirmerait que c’est exactement la même couleur. J’ai créé une petite animation web pour illustrer cet effet, affichant des tranches du gamut sRGB avec une teinte constante, sur une luminosité de fond définie par l’utilisateur : le livre sRGB de couleur .

Correction du cache de pipeline et des bugs vieux de 10 ans

Développement

Récapitulatif des épisodes précédents

  1. Entre 2020 et 2022, Darktable a subi une entreprise de destruction massive , par une poignée de gars avec plus de temps libre et de bienveillance que de réelles compétences,
  2. En 2022, j’ai commencé à remarquer un décalage ennuyeux  entre les interactions GUI avec les curseurs et feedback/ mise à jour de ces curseurs. En l’absence de feedback indiquant que le changement de valeur était enregistré, les utilisateurs pouvaient le changer à nouveau, lançant ainsi des recomputes supplémentaires de pipeline et gelant effectivement leur ordinateur car le GUI stupide n’a jamais dit “je t’ai eu, attends un peu maintenant”.
  3. J’ai découvert que les ordres de recompte de pipelines étaient émis deux fois par clic (une fois sur les événements “bouton enfoncé”, une fois sur les événements “bouton relâché”), et encore une fois pour chaque mouvement de souris, mais aussi que les états GUI étaient mis à jour apparemment après le recomputée de pipeline.
  4. J’ai corrigé cela en réécrivant presque complètement les contrôles GUI personnalisés (lib Bauhaus). Je pensais que la prévention des ordres de recomputation inconsidérés allait résoudre le décalage : ce n’était pas le cas. Ensuite, j’ai découvert que la demande d’une nouvelle recompte de pipeline avant la fin de la précédente attendait que la précédente se termine, malgré un mécanisme d’arrêt mis en œuvre il y a de nombreuses années qui aurait dû fonctionner.
  5. J’ai corrigé cela en mettant en œuvre un mécanisme de bouton d’arrêt sur les pipelines, suivant les commentaires dans le code datant des années 2010 et des fonctions internes qui n’ont peut-être jamais fonctionné. Cela ne fonctionnait pas toujours car l’ordre d’arrêt venait souvent avec un délai notable. Encore une fois, le décalage GUI n’était pas corrigé.

Réécriture de l'outil d'importation

Développement Refonte

Ansel hérite de Darktable son infrastructure de base de données : les historiques de modifications non destructifs sont sauvegardés image par image dans une base de données SQLite, avec les métadonnées et autres données définies par l’utilisateur. Pour intégrer de nouvelles images à la base de données, il faut « importer » ces images depuis un disque ou une carte mémoire. C’est à cela que sert l’outil d’importation.

Malheureusement, l’importateur de Darktable est une autre fonctionnalité qui a été massacrée autour de 2020 pour devenir quelque chose de profondément déroutant : un navigateur de fichiers ne ressemblant à aucun navigateur connu jusqu’alors, qui parvient à manquer de fonctions de base (comme Ctrl+F ou un aperçu EXIF) tout en étant encombré d’options inutiles (voir ci-dessous). C’est ainsi que nous perdons beaucoup d’utilisateurs potentiels dès l’étape zéro du flux de travail. Quel bel exemple de ce qu’une « application de workflow » peut faire !

Lexique de la couleur

mindmap
  root((COULEUR))
    modèle d'apparence de couleur
      espace couleur uniforme
        chromaticité
          U, V
          a, b
        luminosité
          L
        delta E
      transformation d'adaptation chromatique
        illuminant
          indice de reproduction des couleurs
          température de couleur
      éclairage ambiant
      luminosité de fond
    dimensions
      Munsell
        teinte
        chroma
        valeur
      système de couleur naturel
        noirceur
        saturation
        teinte
      CIE
        luminosité
        éclat
        saturation
        chroma
        colorimétrie
        teinte
    mesure
      colorimétrie
        trichromie
          capteur
            critère Luther-Ives
            métamérisme
            plage dynamique
            bruit
            mosaïquage
              Bayer
              XTrans
              artefacts en fermeture éclair
          espaces
            rvb(RVB)
              TSF
              TSV
            LMS
              Yrg
            XYZ
              Yxy
                Yuv
                  Ych
            CYM
              CYMK
            primaires
              cellules coniques
              LED
                ITU BT.Rec 709
                ITU BT.Rec 2020
                DCI P3
              encres
      spectrométrie
        spectre lumineux
          longueurs d'onde
          énergie
      photométrie
        luminance
    correction
      profil
        matrice
        table de correspondance
        fonction de transfert
      étalonnage des couleurs
        ASC CDL
        mélangeur de canaux
        courbes
      balance des blancs

Translated from English by : Aurélien Pierre, ChatGPT. In case of conflict, inconsistency or error, the English version shall prevail.

Implémentation du bouton d'arrêt sur le pipeline

Développement

J’ai pensé, pendant très longtemps, qu’il y avait un mécanisme de bouton d’arrêt sur le pipeline de pixels. Le cas d’utilisation est le suivant :

  1. vous modifiez un paramètre de module,
  2. les aperçus (celui de la chambre noire central et la vignette dans le panneau de gauche, également utilisé pour l’histogramme et les sélecteurs de couleurs) reconstruisent leur pipeline pour tenir compte de ce changement,
  3. l’un des aperçus finit de se rendre avant l’autre, et le résultat n’est évidemment pas celui que vous vouliez,
  4. vous modifiez à nouveau le paramètre du module, sans attendre la fin de la recomputation.

Dans ce cas, vous souhaitez annuler tous les pipelines actifs car leur résultat ne sera pas utilisé, et commencer immédiatement à tout recalculer avec les nouveaux paramètres. Sauf que Darktable ne fait pas ça, il laisse le pipeline se terminer avant de le redémarrer, et en regardant les commentaires dans le code source, il semble que ce soit une régression assez récente et non le comportement initialement prévu.

Dé-darktable-isation des contrôles GUI

Développement

Darktable a sa propre bibliothèque d’objets GUI, pour les curseurs et les comboboxes (alias menus déroulants ou boîtes de sélection), appelée Bauhaus (dans le code source, c’est dans src/bauhaus/bauhaus.c). Bien qu’ils utilisent Gtk en tant que moteur arrière, les objets Bauhaus sont des objets personnalisés. Et comme beaucoup de choses dans Darktable, personnaliser signifie pourri.

En 2022, ‍j’ai remarqué des redessinages parasites et des lenteurs , lors de leur utilisation, conduisant à une expérience utilisateur frustrante : le redessinage des widgets semblait attendre la conclusion des recalculs de la chaîne, ce qui signifiait que les utilisateurs n’étaient pas vraiment sûrs que leur changement de valeur était pris en compte, ce qui pouvait les amener à réessayer, déclenchant un autre cycle de recalcul coûteux, et gelant effectivement leur ordinateur pendant plusieurs minutes frustrantes d’intermédiaires coûteux recalculs de la chaîne.

Changements dans la prise en charge des distributions pour le paquet Linux AppImage

Annonce

Rawspeed (la bibliothèque fournissant les décodeurs pour les fichiers raw des appareils photo) a déprécié le support pour GCC < 12. En conséquence, je ne peux plus construire le AppImage sur Ubuntu 20.04 (en utilisant Github runners) mais je dois le construire sur 22.04.

Cela signifie que toute distribution Linux ayant une libc antérieure à 2.35 ne pourra pas démarrer les nouveaux AppImages à partir d’aujourd’hui. Cela ne devrait pas affecter la plupart des utilisateurs exécutant des distributions mises à jour en 2021 ou plus récemment. Ubuntu 20.04 et d’autres distributions LTS/stables anciennes (Debian stable) pourraient être affectées.

Impression

Le flux de travail relatif à la scène promet une retouche indépendante du medium de sortie. Il va typiquement produire une image encodée en sRGB sur 8 bits, c’est à dire des valeurs codées entre 0 et 255. Pour simplifier, nous allons nous limiter au cas 8 bits dans la suite. Les concepts demeurent en 16 bits, la différence est que la plage d’encodage va de 0 à 65535, ce qui est un détail.

Explication de la refonte de groupes de modules d'Ansel

Design

Si vous venez de Darktable, vous vous attendez peut-être à cela dans la chambre noire :

image

tandis qu’Ansel vous offre ceci :

image

Ce n’est pas un accident, et il est temps d’expliquer pourquoi, et pourquoi cela ne sera pas étendu avec des options de personnalisation.

Nouvelles options de build pour Linux

Développement

J’ai découvert par accident que le script de build Linux utilisait un package build, ce qui signifiait que les optimisations CPU étaient limitées à des optimisations génériques afin de produire des binaires portables pouvant être installés sur n’importe quelle plateforme x86-64. Par ‘utiliser’, je veux dire que le build package n’était pas explicitement désactivé, donc il était activé par défaut.

De toute façon, cela est maintenant désactivé par défaut, puisque les packages réels (.exe et .appimage) ne sont pas construits via ce script, qui est principalement destiné à aider les utilisateurs finaux. Pour revenir à l’ancien comportement, vous devrez exécuter :

Journal de développement #2 : présentation de Chantal

Développement

2022 a été si mauvaise en termes de courriels indésirables et de bruit que j’ai commencé la Secrétaire Virtuelle , un cadre Python pour écrire des filtres de courriels intelligents en croisant des informations provenant de plusieurs sources pour deviner ce que sont les courriels entrants et s’ils sont importants/urgents ou non. Quand je parle de courriels indésirables, il s’agit aussi des notifications Github, des pings sur pixls.us (heureusement, j’ai fermé mon compte sur ce forum stupide), YouTube et des courriels directs de personnes espérant obtenir de l’aide en privé.

Édition de base

Voici comment démarrer avec la retouche dans Ansel, en passant par les étapes les plus basiques qui vous serviront fidèlement dans la plupart des cas.

Cette video a été enregistrée sur Darktable 3, mais les mêmes modules et principes s’appliquent à Ansel.


Translated from English by : Aurélien Pierre, ChatGPT. In case of conflict, inconsistency or error, the English version shall prevail.

Virage monochrome

Film Monochrome

Cet article montre comment effectuer un ton monochrome sur des images numériques dans Ansel, afin d’émuler le rendu des couleurs des développements type cyanotype, platinotype, sépia et virage partiel.

Etape 0 : préparation globale

Réglez l’exposition globale ainsi que l’exposition relative du blanc et du noir dans filmique RVB comme pour toute autre opération d’édition. Voir retouche de base. Voici notre image de base de Glenn Butcher :

Journal de développement

Développement

Cela fait environ 3 mois que j’ai rebrandé “R&Ddarktable” (ce que personne ne semble comprendre), en “Ansel”, puis acheté le nom de domaine et créé le site web de zéro avec Hugo (je n’avais jamais programmé en Golang auparavant, mais il s’agit principalement de code de modèle).

Il me reste alors un total de 70 heures pour faire fonctionner les builds packaуs nocturnes pour Windows et Linux pour une livraison continue, ce que Darktоrque n’a jamais bien fais (« tu peux compléter toi-même, ce n’est pas difficile »), seulement pour voir le traqueur de bugs exploser après la sortie (rien de mieux que de chaîner le sprint pré-sortie avec un sprint post-sortie pour réduire votre espérance de vie.)

Darktable : s'écraser contre le mur au ralenti

Qu’est-ce qui se passe quand une bande de photographes amateurs, devenus développeurs amateurs, rejoints par une poignée de développeurs back-end qui développent de la librairie pour développeurs, se décide à travailler sans méthode ni structure sur un logiciel métier pour utilisateur final dont le cœur de compétence (colorimétrie et psychophysique) se situe quelque part entre un BTS photo et un BAC+5 en sciences appliquées, tout en se promettant de sortir 2 versions par an sans gestion de projet ? Tout ça bien sûr dans un projet logiciel dont les fondateurs et la première génération de développeurs sont passés à autre chose ?

Le flux de travail relatif à la scène

Science Des Couleurs Pipeline

Dans cet article, vous apprendrez ce qu’est le flux de travail relatif à la scène, comment Ansel l’utilise et en quoi il profite au traitement d’image numérique en général.

Introduction

Le flux de travail relatif à la scène est la colonne vertébrale du pipeline d’imagerie d’Ansel. Il s’agit d’une logique de travail qui vient de l’industrie du cinéma car c’est la seule façon d’obtenir un compositing (aussi nommé fusion alpha) de calques graphiques robuste et sans raccords visibles. Pour les photographes, c’est surtout pour les scènes à haute plage dynamique (HDR) (sujets en contre-jour, couchers de soleil, etc.) qu’il montre son intérêt.

Search

You can also ask Chantal, the AI search engine.