Etalonner son appareil photo avec Argyll CMS

Pour pouvoir exploiter au mieux ses fichiers RAW avec UFRaw, Rawtherapee ou Darktable, il est préférable d'avoir un profil ICC correspondant à son boitier. Il est bien sûr possible d'utiliser les profils créés par le fabricant ou bien ceux de sociétés tierces. Seulement, le rendu des couleurs est loin de celui obtenu avec les logiciels pour lesquels ils ont été créés.

Principe

Pour étalonné le capteur de son appareil photo, il faut :

  • faire une photo d'une charte de couleur
  • dé-rawtiser la photo sans aucune correction
  • analyser cette photo avec Argyll CMS pour créer le profil ICC
Idéalement, il faudrait créer un profil pour chaque scène... mais on peut arriver à créer un profil générique qui convienne à la majorité des cas.

Choix de la charte de couleur

J'ai pris une charte CMP Digital target 3 de CMP Color, elle contient 570 patches de couleurs et coûte un peu plus de 80 €. Elle est crée sur une imprimante à jets d'encre, il peut donc y avoir du métamérisme. Dans la même gamme de prix, il y a les color checker de X-Rite. Elles sont teintés dans la masse mais ne contiennent que 24 patches, ce qui n'est à priori trop peu pour faire un profil précis.

J'ai reçu la mire rapidement, 3 jours après l'avoir commandé. Elle livrée dans une chemise en plastique rigide et emballée dans un carton épais pour le transport. Lorsque le fabricant l'envoie, nous recevons un mail avec les mesures spectrales ainsi que les mesures de luminosité de la charte.

Avec l'achat de la cible le fabricant propose la création de plusieurs profils avec ses outils, il suffit de déposer une photo de la mire sur son serveur FTP. Ce que j'ai fait, je lui ai aussi dit que j'étais sous Linux et il m'a répondu qu'il existe des logiciels de calibration sous Linux et que je pouvais le faire moi-même. A ce jour, je n'ai toujours pas reçu les profils promis avec l'achat de la cible.

Prise de vue

Il s'agit de la partie la plus délicate :

  • L'appareil photo doit être le plus parallèle possible à la charte
  • la charte doit être éclairée de façon homogène
  • la lumière doit avoir un spectre le plus large possible. Idélament, la lumière du soleil au zenith par temps clair. On peut aussi se servir d'un flash. Je déconseille cette seconde solution qui donne des résultats moins bon.
  • il faut éviter que des objets de couleurs à proximité de la charte se reflètent dedant sinon, nous risquons de fausser les mesures.

Dérawtisation

L'image doit être la plus neutre possible. Sous UFRaw, les paramettre suivants doivent être appliqués :

  • exposition à zéro
  • rendu numérique
  • les courbes doivent être linéaires
  • contrastes et saturation à 1.0
  • pas de profil en entré
  • profil de sortie sRGB avec un rendu de colorimétrie absolue
  • gamma 1.0 et linéarité à zéro
  • format tif 16 bit

Création du profil avec Argyll CMS

La création se fait en 2 étapes. La première consiste à analyser la charte avec la commande suivante :

scanin -v -p -a -dipn IMAGE_CHARTE.tiff /usr/share/color/argyll/ref/CMP_Digital_Target-3.cht CMP_DT3.txt
Les paramètre principaux de cette commande sont :
  • l'image de la charte
  • l'emplacement des patchs de couleurs sur la charte
  • une mesure étalon des couleurs des patchs
Une fois la commande exécutée, nous obtenons un fichier diag.tif qui permet de savoir si l'image a correctement été reconnue. Ensuite, nous utilisons la commande suivante pour produire un fichier ICC (IMAGE_CHARTE.ICC) :
colprof -v -A "Canon" -M "EOS 5D Mark II" -D "Canon EOS 5D Mark II" -C "Copyright (c) 2010 Xavier BESSE. Some rights reserved." -q l -a m IMAGE_CHARTE

To be continued ...

Il ne reste plus qu'a utiliser ce fichier en entrée de UFRAW ou Darktable. J'ai d'ailleurs fourni une prise de vue de la charte faite avec le 5D Mk II au projet Darktable. La personne en charge de la gestion des couleurs de Darktable a créé une courbe générique pour le logiciel afin d'avoir une gestion précise du 5D Mk II. Grâce à cela, Darktable est aujourd'hui le logiciel libre qui me donne les couleurs les plus fidèles pour mon boitier.

Une fois le profil créé, il est aussi possible de créer des profils simulant le rendu des couleurs proposées par le fabricant du boitier. Par exemple, simuler le rendu des Styles d'Images de Canon ... mais ça, c'est un autre article !

Améliorer la réactivité de Gnu/Linux sur son ordinateur portable

J'utilise aujourd'hui uniquement des ordinateurs portables chez moi, c'est un choix personnel. Parmi les quelques inconvénients de ces machines, il y a la lenteur des disques dur qui affecte la réactivité générale du système. Je présente ici les quelques optimisations que j'ai trouvé sur Internet et appliqué avec succès. Ces optimisations sont appliquées sur un ordinateur portable "standard" : Intel Core2 duo, 3Go de mémoire vive, un DD de 280 Go, carte graphique avec mémoire dédiée.

Choix du système de fichier et partitionnement du disque

Mon disque est partitioné comme suit :

  • swap 4 Go
  • /boot ext3 300 Mo
  • / ext4 10 Go
  • /home ext4 le reste du disque
J'ai une partition séparée pour /boot car lorsque ext4 fut proposé officiellement par les distributions majeures, grub ne le supporté pas encore, il fallait donc que la partition contenant le noyau soit en ext3 par exemple. J'ai toujours une partition de swap, bien que le système ne s'en serve presque pas. Enfin, j'ai une partition pour les données utilisateur séparée du reste du système. L'utilité d'une telle séparation est de pouvoir changer de distribution sans avoir à déplacer les données utilisateurs sur un autres disque. Nous verrons par la suite, que cela a un autre intérêt.
Le système de fichier utilisé est ext4 car il est a priori plus performant que ext3 et ext2. Je n'ai jamais utilisé JFS ou XFS bien qu'ils soient aussi très intéressants.

Tmpfs

La mémoire vive est plus rapide que mon disque dur ! Seulement, le système et les programmes ont besoin d'enregistrer des données temporaires sur le disque pour leur fonctionnement. Ces données sont écrites en plusieurs endroits en fonction de leur nature :

  • /tmp pour des données temporaire supprimées à chaque redémarrage
  • /var/tmp pour des données temporaires pouvant être réutilisées
  • /var/run pour les données du programme en cours d'exécution
  • /var/lock pour permettre à certains programmes de positionner des verrous
Grâce à tmpfs, nous pouvons monter ces répertoires en mémoire vive. Le gros point fort de tmpfs est d'allouer dynamiquement la mémoire vive, les répertoires montés de la sorte n'occupent que l'espace pris par les fichiers. Si nous regardons la taille du répertoire avec un gestionnaire fichier (ou bien df à la console), nous obtenons la taille maximale que peut avoir ce répertoire en mémoire vive. Par défaut, tmpfs défini cette taille maximale à la moitié de la mémoire vive disponible.
Pour utiliser tmpfs sur les répertoires sus-cités, il suffit d'ajouter les lignes suivantes au fichier /etc/fstab et de redémarrer son système :
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0
Avec ces quelques lignes, je constate que mon système est plus réactif. C'est difficile à quantifier, je n'ai pas de mesures objectives à fournir. Cependant, les menus de XFCE et leur icônes s'affichent plus rapidement qu'avant, le gestionnaire de fichier Thunar affiche plus rapidement le contenu des dossiers, ... bref c'est plus fluide.
Attention, tout ne peut pas être mis en mémoire vive car les données qui y sont placées sont perdues avec l'extinction de l'ordinateur. Il existe bien sûr possible de créer des scripts pour sauvegarder dans une archive les données au moment de l'arrêt. D'autres scripts rechargent ensuite ces données dans la phase de démarrage du système. Je n'ai pas mis en œuvre cette possibilité.

Le cas Firefox

Firefox gère un cache sur le disque dur dans le répertoire de l'utilisateur. Il est possible de paramétrer la localisation de ce cache et le placer dans le répertoire /tmp. Pour cela, dans la barre d'adresse de Firefox, il suffit de taper about:config, valider l'avertissement puis ajouter la clé browser.cache.disk.parent_directory et lui donner comme valeur /tmp. Une fois cette modification faite, si nous relançons Firefox, nous constatons que la navigation est un peu plus fluide qu'auparavant.

Le tuning ext4

Il est possible de gagner encore en performance en jouant sur certains paramètres de montage des partition dans /etc/fstab. Voici un exemple de ligne je vais détailler :

/dev/sda2 / ext4 noatime,data=writeback,barrier=0,nobh,commit=100,nouser_xattr 0 1
  • L'option noatime désactive l'acces time. Par défaut, à chaque fois, que nous accédons à un fichier, ext4 écrit la date d'accès à ce fichier sur le disque! Dans le cadre d'un usage personnel, cette opération couteuse en temps peut être désactivée sans que cela affecte le fonctionnement du système.
  • L'option data=writeback change le mode de journalisation du système de fichier. Dans ce mode les données peuvent être écrites sur le disque après que leur méta-données soient enregistrées. Cela signifie qu'en cas de plantage, si une opération d'écriture était en cours certaines données ne seront pas retrouvées. Dans mon cas (partition racine), sauf en cas d'installation d'un nouveau programme ou de mise à jour du système, je ne risque pas grand chose. Attention, lorsque cette option est activée sur la partition racine, celle-ci doit être d'abord montée en lecture seule pour que la commande suivante lui soit appliquée : tune2fs -o journal_data_writeback /dev/sdXX où XX est la partition modifiée, sda2 dans notre exemple. Dans le cas contraire, certains programmes comme le serveur X refusent de démarrer. Un fois cette opération faite, on peut redémarrer normalement son ordinateur.
  • L'option commit=100, modifie l'intervalle de mise à jour du journal en seconde. Il s'agit d'une opération de synchronisation entre les données et les méta-données. Par défaut, elle est positionnée à 5 secondes. En la mettant à 100, cela signifie qu'en cas de plantage, je peux perdre jusqu'à 100 secondes d'historique.
  • L'option nouser_xattr désactive les attributs étendus des utilisateurs. Pour un usage personnel, cette fonctionnalité n'est pas très importante.
  • L'option nobh nécessite que la première option data=writeback soit utilisée.
  • L'option barrier=0 ne doit être activée que lorsqu'on a une alimentation de secours ... ce qui est le cas sur un portable :-). Concrètement, cette option renforce l'ordre des commits dans le journal. Encore une fois, sur la partition racine, je ne risque pas grand chose.
Les options les plus significatives sur la réactivité du système sont noatime et data=writeback.

Et les logs ?

Il est aussi possible de mettre le répertoire /var/log en mémoire vive. Cela signifie juste que je perd l'historique des actions sur mon ordinateur. Dans le cadre d'un usage domestique, cela pas pas beaucoup d'importances. Par contre, il faut penser à désactiver le service de log du noyau.

Encore plus de réactivité ?

Pour les plus fortunés, il est possible d'acheter un ordinateur portable avec 2 emplacements pour disque dur et de les configurer en raid 0. Il est aussi possible de remplacer l'unique disque dur du portable par un disque SSD ... très cher.
Une autre solution moins onéreuse peut être d'acheter une Express card SSD, on en trouve de quelques Go pour une cinquantaine d'euros. L'idée est de mettre la partition racine sur ce disque et le reste sur le disque dur.

Les script-fu d'Elsamuko

Dans ce billet je vous propose de découvrir le travail d'Elsamuko. Il a déjà créé plusieurs scripts très intéressants pour donner divers effets sur une photo; il continue d'en proposer régulièrement. Je ne vais pas détailler tout les scripts, seulement ceux qui me plaisent et que je peux utiliser dans mon workflow. Je vous invite donc à aller sur son site pour découvrir les autres.

Image de travail

voici l'image sur laquelle je vais appliquer les différents scripts.

Installation des scripts

Comme d'habitude, il suffit de copier les fichiers *.scm dans votre répertoire $HOME/.gimp-2.6/scripts et de lancer Gimp. Il est possible soit de télécharger les scripts qui vous intéressent un à un, soit de télécharger une archive zip contenant l'ensemble des scripts.

Technicolor

Il s'agit là de simuler le rendu des vieux films couleurs des années vingts aux années cinquantes. Il y a deux scripts :

  • le premier simule le procédé technicolor bichrome. Il créé 3 calques Cyan, rouge et jaune et permet de définir les couleurs de chacun. L'image finale est obtenu en superposant les différents calques.
  • le second simule le procédé technicolor trichrome. Il est un peu plus complet que le premier et permet de définir les couleurs de recompositions Cyan, Magenta et Jaune. En désactivant les options "retro color" et "extra intensity", l'image obtenu est très proche de l'originale avec des couleurs vieillis. L'image ci-dessous utilise les paramètres par défaut du script.

National Geographic

Ce script simule le rendu des portraits qu'on trouve dans la revue National Geographic. Il existe une version batch qu'on peut utiliser en dehors de Gimp. Il crée plusieurs calques : un pour les ombres, un pour le contraste local, un pour l'accentuation, ... Il permet de régler l'opacité des calques et l'intensité de l'accentuation et du contraste local.

Vintage Look

Ce script simule le rendu des photos des années soixante-dix. Il créé 4 calques : une copie en N&B de l'original et des calques cyan, magenta et jaune dont on peu régler l'intensité à partir du script.

Photochrome

Ce script simule le rendu du procédé de lithographie photochrome. Il permet de régler, entre autre, les couleurs du dégradé et du contraste.

Movie 300

Ce script simule le rendu des couleurs du film 300. Il permet de régler les couleurs utilisées pour le rendu final, la désaturation, l'opacité des différents calques, ...

Cyanotype

Ce script simule le procéde de tirage photo Cyanotype. Il permet de régler les couleurs du dégradé, le contraste local, ...

Les autres scripts

Si vous allez sur le site d'Elsamuko, vous trouverez aussi un script pour obtenir un effet Lomo, très à la mode en ce moment. Je ne l'ai pas détaillé car je possède un Lensbaby Muse qui permet d'obtenir ce genre de résultat naturellement. Vous trouverez aussi des effets de bordures de photos et des rendus d'affiche célèbre (Obama, Che Guevara).

Dé-rawtiser ses photos sous Linux partie 2 : RawTherapee

Des raisons de préférer Gimp à Photoshop

page 1 sur 9 | suivante > | >>