Local Lab controls/fr

From RawPedia
Jump to: navigation, search

Texte rédigé par Jacques Desmis.

Quel type de contrôle local?

Lorsqu'on observe les différents logiciels du marché on trouve plusieurs types de contrôles locaux

  1. les contrôles de type "lasso", associés à des calques et masques de fusion, comme par exemple dans Photoshop (c). Ce type de contrôle est majoritaire dans les logiciels (Photoshop, Gimp, Darktable...) et l'avis des utilisateurs est obligatoirement orienté vers ceux-ci au détriment du point 4) ci-dessous moins connu!
  2. les dispositifs de suppression de "yeux rouges", ou de "spot" liés aux imperfections du capteur
  3. les brosses qui permettent des mini corrections locales
  4. les contrôles de type U-points, utilisés jusque récemment dans Nikon Capture NX2 (c), ou comme complément à d'autres logiciels comme Nik Software (c), et récemment dans DxO ou Capture NXD. Pour qui a tâté de ces dispositifs (encore minoritaires aujourd'hui) il n'est pas question de revenir aux calques et masques de fusion! Ce type de contrôle nécessite un apprentissage différent de ceux de type lasso-calque et un désapprentissage cognitif de ceux-ci. De mon point de vue, ils sont globalement plus performants.

Dans la version présente de Rawtherapee, l’algorithme développé est proche dans le principe du point 4) ci-dessus, les U-points avec quelques possibilités pour 2). Bien sûr, le code de Nik Software est inconnu, mais il y a quelques années j'ai été séduit par la facilité d'utilisation et les performances des U-points, et j'ai entrepris de développer un produit qui ne ferait pas appel, ni au lasso, ni aux calques, ni aux masques de fusion (même si j'en ai récemment ajouté en complément).

Bien sûr rien n'interdit d'avoir les 3 possibilités (Lasso-calque, retouches spot, U-points) !

Quels défis à résoudre?

Plusieurs problèmes généraux sont à résoudre afin d'obtenir un fonctionnement fluide :

  • permettre un nombre quasi illimité de RT-spot (spot de contrôles);
  • adapter les algorithmes locaux aux problèmes d'échelle, car beaucoup d'algorithmes tiennent compte de la taille de l'image - donc de la zone traitée. Cet aspect est fondamental, notamment avec les courbes qui agissent sur toute l'image;
  • minimiser l'occupation mémoire et les temps de traitement en sortie JPG et TIF;
  • permettre des mises à jour logicielles faciles en cas d’évolution des algorithmes ou d'évolution du nombre de méthodes ;
  • optimiser les écarts entre "preview" et sortie JPG / TIF;
  • etc.

Pour chaque RT-spot :

  • permettre selon le cas, une action dans la zone sélectionnée ou à l'extérieur de la zone sélectionnée;
  • permettre selon le cas une détection de forme pour délimiter l'action ou une action également répartie sur toute la zone sélectionnée;
  • assurer une transition entre le cœur de la zone traitée et le reste de l'image;
  • etc.

Actuellement, les RT-spot (spot de contrôles) sont opérationnels, pour le mode Lab, et pour les méthodes suivantes:

  1. Color and light : lightness, chrominance, contraste en mode normal avec quatre courbes L=f(L), L=f(H), C=f(C), H=f(H) avec possibilité de masques et inverse ;
  2. Exposure : en mode normal avec possibilité de masques et inverse;
  3. Local Contrast;
  4. Vibrance;
  5. Soft Light;
  6. Blur and Noise : en mode normal, inverse, symétrique;
  7. Retinex : en mode normal et inverse, maintenant avec gestion de la courbe "transmission gain";
  8. Sharpening : en mode normal et inverse;
  9. Contrast By Detail Levels : en mode normal;
  10. Denoise : en mode normal.

Interface graphique - GUI

Elle a été réalisée par Pierre Cabrera. Elle me semble simple et intuitive.

Quelques bugs sont encore présents à ce jour (janvier 2019), ils devraient prochainement disparaître.

Principes généraux

L'Objet RT-spot

Comme je l'ai évoqué, le système utilisé est proche de celui mis au point par Nik Software, avec de grandes différences :

  • chaque RT-spot, peut être considéré comme un objet qui comporte plusieurs champ - à ce jour environ 80, constitués de curseurs, courbes, combobox, checkbox, mask;
  • chaque champ, regroupé en paquets peut être ou non activé, et peut avoir des valeurs variables selon sa nature ;
  • les paquets sont des ensembles cohérents pour l'utilisateur : color & light, exposure, local contrast, soft light, vibrance, blur and noise, retinex, sharpening, contrast by detail level, denoise ;
  • les "RT-spots objets" sont gérés - création, modification, suivi - dans une boucle "for";
  • il n'y a pas de duplication de code.

La délimitation des zones - l’aperçu de la zone RT-spot

Lorsque l’utilisateur sélectionne un RT-spot (spot de contrôle),l’image à l’écran montre:

  • un centre, constitué d'un cercle dont on peut faire varier : a) le diamètre, b) la position avec la souris ou les curseurs;
  • quatre lignes horizontales ou verticales dont on peut faire varier les positions avec la souris ou les curseurs.

On aboutit à 4 zones, dont on ne peut faire varier l'orientation. Ces 4 zones ont chacun de leurs sommets reliés par une ellipse imaginaire ou un rectangle (menu settings).

Il est possible de pointer les limites des zones en dehors de la zone "preview".

A terme, il doit être possible, même si l'utilité me semble discutable du fait de l'algorithme de détection de forme - à noter que DxO et Capture NXD n'ont qu'une sélection circulaire - , de remplacer l'ellipse ou le rectangle, par une courbe tracée à l'aide de la souris, à condition que la transformée homothétique de la courbe n'ait pas d'intersection avec la courbe originale. Cette "amélioration" intellectuellement satisfaisante, ne devrait être que d'un apport négligeable (sauf cas spécifiques) - dans le cas des U-points. Néanmoins il sera toujours possible de faire coexister les actuels U-points avec des contrôles par"lasso" de type Photoshop (c).

Les 2 types de RT-spot

Deux types de RT-spot sont proposés:

  • Normal: chaque nouveau spot prend en compte les réglages des précédents - si bien sûr ils sont dans la zone d'action commune - on peut parler d'action récursive.
  • Excluding : chaque nouveau spot réinitialise, l'image à partir des données originales, mais garde pour les calculs les références de l'image modifiée par les autres RT-spots.

Dans les deux cas, vous avez accès à la quasi totalité des réglages : Color and Light, CBDL, Blur, etc.

Commentaires sur le "Excluding spot":

  • il est dans le principe assez similaire au "Contre point" de Capture NX2(c) et permet de défaire des actions trop invasives par exemple une "bavure" non désirée, ou d'empêcher l'action sur une partie déterminée, par exemple si l'utilisateur souhaite accroître la saturation d'un portrait et qu'il veut exclure l’œil.
  • l'algorithme que j'ai utilisé est très proche de ceux présents jusqu'ici dans "locallab", il est fondé sur les différences de deltaE et aussi sur la structure de l'image (via une transformée de Sobel Canny). Il n'est pas "parfait" mais devrait satisfaire 70% des cas.

Comment se servir de "Excluding spot"

  1. il suffit de placer le nouveau spot sur la zone à exclure
  2. choisir dans le menu "Settings", Spot method = "Excluding spot"
  3. Puis régler "Scope", "Transition", "Spot size" ainsi bien sûr que 4 limiteurs de zone, pour obtenir les effets désirés. Vous pouvez utiliser si nécessaire, des réglages complémentaires (comme pour le spot normal) par exemple "Color and Light", "Exposure", etc...
  4. dans le cas de zones avec aplats, vous pouvez utiliser "Structure" qui pourra aider dans certains cas à une meilleure délimitation de l'action.

Les références teinte, chroma, luminance et le principe de l'algorithme

Afin de mettre en œuvre un algorithme performant de détection de forme :

  • la zone du cercle central, sert de référence. En fonction du diamètre choisi par l'utilisateur, le système calcule, la moyenne de la teinte (hue), de la chroma, et de la luminance (lors de l'utilisation de Denoise, ou de Global quality = Enhanced + chroma denoise", ces différentes valeurs sont calculées après un léger floutage pour réduire l'impact du bruit) .
  • le choix du diamètre de la zone centrale dépend de l'usage. Par exemple pour un feuillage, l'utilisateur aura intérêt à choisir une valeur faible afin de ne sélectionner que le vert du feuillage; à l'inverse pour la peau l'utilisateur aura intérêt à accroître le diamètre afin d'éviter les prises en compte de données parasites (bruit, cils, etc.).
  • pour chaque quart, et en fonction du curseur "scope", le système prend en compte :
  1. en premier lieu de l'écart de deltaE (différence perçue entre 2 couleurs prenant en compte, la teinte, la chroma et la luminance)entre la zone centrale et le pixel courant) ;
  2. puis, un algorithme s'appuyant sur ce deltaE , atténue l'action en fonction de l'écart entre la zone centrale et le pixel courant.
  3. la modification d'action utilise soit une loi linéaire, soit une loi 'puissance' (parabolique, cubique,....) en fonction du réglage de "DeltaE weakening" dans settings (10 conduit à une loi linéaire, 20 parabolique, etc.)

Ceci va permettre de différencier l'action selon les critères énoncés ci-dessus, comme par exemple, si le cercle central se trouve dans un feuillage, de limiter l'action à l'ensemble du feuillage sans toucher à l'arrière plan (ce qui est impossible avec un lasso). De plus si un autre feuillage se situe dans la zone couverte, celui-ci sera également concernés par la modification.

  • l'action sur le curseur transition va permettre de faire varier l'action : si le curseur est réglé sur 50, la moitié (linéaire) de la zone concernée verra une application à 100% de l'effet, puis une transition agira régressivement jusqu'aux limites de la zone.
  • si on accroît la valeur de "scope", progressivement l’ensemble de la zone sélectionnée est prise en compte quelque soit la couleur, la chroma et la luminance.
  • si on réduit la valeur de "scope",l'action se limitera aux pixels très proches (en termes de deltaE) de la zone de référence.
  • si scope est supérieur à 99, l'ensemble de la zone est concernée de manière identique (pas du tout de prise en compte du deltaE)

L'algorithme de détection de forme est opérationnel en mode "normal" et en mode "symétrique" pour certains modules - son implantation en mode inverse s'accompagne de restrictions.

Cet algorithme va avoir ses performances modifiées, si l'utilisateur choisit : "Quality enhanced + chroma denoise". Ce second choix apporte une très légère réduction du bruit de chroma afin de supprimer les artefacts possibles liés à des images légèrement bruitées (à noter dans le cas + chroma denoise, un accroissement des besoins en mémoire et du temps de traitement).

Au dessus de la valeur de "scope" choisie, l'algorithme "deltaE" n'est pas pris en compte (voir ci-après).

DeltaE utilisé

J'ai choisi la version la plus simple du deltaE.

Si on évalue les valeurs L*a*b* dans l'intervalle : L [0..100] a [-128..+128] b [-128..+128]

  • Si Lc, ac, bc sont les valeurs du pixel courant
  • Si Lr, ar, br sont les valeurs de la référence (converties des valeurs LCH de base)
  • deltaE = sqrt(SQR(Lc - Lr) + SQR(ac - ar) + SQR (bc - br))

Correspondance avec la valeur de "scope":

  • il y a une relation entre scope et deltaE et l'affaiblissement (weakening), et "threshold deltaE-scope"
  • threshold deltaE-scope agit sur l'étendue de prise en compte
    • par défaut threshold deltaE-scope = 2 conduit à des valeurs de deltaE prises en compte de 2 à 155
    • si vous réduisez threshold deltaE-scope, la valeur maximale va être réduite jusque 130, à l'inverse si vous augmentez au maximum, le maximum deltaE sera de 230. De mon point de vue il faut réserver cette situation aux images avec de très grosses variations de gamut, par exemple des fleurs aux couleurs éclatantes. Par contre accroître légèrement threshold deltaE-scope (3 à 5) permet un rendu différent du système.
      • un deltaE de 230 ne peut se rencontrer que dans des cas extrêmes, par exemple 80 d'écart sur L, 158 sur a, 145 sur b... (uniquement accessible pour les très grands espaces de travail, avec des couleurs de base telles fleurs éclatantes ou couleurs artificielles, et action importante sur les sliders chroma et luma)

Cas avec threshold deltaE-scope = 2 (défaut)

  • les deltaE pris en compte varient de 2 (scope=0) à 155 (scope=100). Bien sûr ce choix est arbitraire on peut changer les 2 seuils mini et maxi (voir ci-dessus), mais il semble fonctionner dans une majorité de cas.
  • 2 n'est pas perceptible par l'oeil (mais ici ce n'est pas l'objectif recherché)
  • 155 correspond à des valeurs très élevées, par exemple 80 d'écart sur "a" (composante rouge vert), 80 sur "b" (composante bleu jaune"), 80 sur "L" ou autre exemple 50 sur "L", 105 sur "a" et 100 sur "b"

Par exemple lorsque "scope" est réglé sur 15, ceci signifie que toutes les couleurs telles que deltaE < 3 seront traitées telles quelles sans atténuation. Celles avec deltaE > 27.5 seront ignorées, les valeurs intermédiaires sont affaiblies d'autant plus qu'on se rapproche de deltaE = 27.5, par exemple:

  • un deltaE de 3 correspond par exemple à (il y a d'autres combinaisons...):
    • delta L = 2
    • delta a = 1
    • delta b = 2
  • un deltaE de 15 correspond par exemple à (il y a d'autres combinaisons...) :
    • delta L = 10
    • delta a = 9
    • delta b = 6.6
  • ou encore un deltaE de 27.5 par exemple à (il y a d'autres combinaisons...) :
    • delta L = 15
    • delta a = 14
    • delta b = 18.3

Lorsque on augmente "scope", par exemple à 50, toutes les couleurs telles que deltaE < 4.5 seront traitées telles quelles sans atténuation. Celles avec deltaE > 80 seront ignorées, les valeurs intermédiaires sont affaiblies d'autant plus qu'on se rapproche de deltaE = 80, par exemple:

  • un deltaE de 80 correspond par exemple à (il y a d'autres combinaisons...):
    • delta L = 20
    • delta a = 62
    • delta b = 44,7

Etc.

Algorithme complémentaire - détection de structure

L'algorithme de Sobel-Canny permet en association avec le filtre "Guide Filter" qui lisse les irrégularités, d'utiliser la différence entre la référence (cercle central) et la valeur de la structure en chaque point de l'image.

Cet "écart" est ajouté au calcul de deltaE pour mieux déterminer les contours et les zones à réduire l'effet. Ce système est efficace, si:

  • la référence est dans une zone avec une assez importante structure
  • la zone à affaiblir est un aplat ou avec une structure faible.

Structure est implanté dans "Color and Loght" et "Exposure" ainsi que dans "Excluding spot". Dans le sens Aplats vers structure vous pouvez agir si nécessaire, sur "Threshold structure" (Settings), la valeur est fonction du niveau de bruit.

Il est possible d'utiliser "structure" lorsque :

  1. les différences de deltaE sont très faibles et qu'on souhaite une différenciation
  2. et lorsque que se trouve accolée une zone avec structure et une autre avec aplats

Algorithme complémentaire - Mask

Les deux modules "Color and Light" et "Exposure" ont la possibilité d'utiliser un masque. Celui-ci vise 2 objectifs:

  1. augmenter la sensibilité de détection et donc permettre une meilleure sélection des objets (objectif principal), sans modifier l'image, lorsque l'algorithme deltaE n'est pas suffisamment pertinent (rare).
  2. aboutir à des effets spéciaux en combinant l'image du masque et celle originale.

Dans les 2 cas, l'image est modifiée avant le traitement par les algorithmes de "Color and Light" et "Exposure". L'utilisateur dispose de 3 courbes qui sont au démarrage toutes positionnées à 1 (maximum) :

  • C=f(C) la chrominance varie en fonction de la chrominance, l'utilisateur peut ainsi diminuer la chroma pour améliorer la sélection
  • L=f(L) la luminance varie en fonction de la luminance, l'utilisateur peut ainsi diminuer la luminosité pour améliorer la sélection
  • L et C = f(H) la luminance et la chrominance varient en fonction de la teinte, l'utilisateur peut ainsi diminuer la luminosité et la chroma pour améliorer la sélection

Comment procéder, pour l'essentiel pour l'objectif n°1 ?

  • pour satisfaire l'objectif n°1 il est impératif de ne pas (ou peu) modifier la zone où se trouve le "spot". A ce jour (un travail sur le GUI est en cours qui permet de visualiser sur la courbe elle même la valeur de L, C ou H à éviter de modifier) c'est à l'utilisateur de positionner correctement le point des courbes qui ne sera pas modifié. pour cela sous la ligne "Mask and modification" apparaît les 3 valeurs (en mode linaire) de la chroma, de la luminance et de la teinte correspondant à la "référence", il suffit de positionner le sommet de la courbe à chacun de ces points selon le cas.
  • ensuite en examinant le masque, vous pouvez réduire très raisonnablement les valeurs de chroma, ou luma, selon le cas. Des valeurs de 0.8 à à.9 doivent être suffisante dans la majorité des cas
  • pour satisfaire l'objectif n°1, il est souhaitable que le(s) curseur(s) "blend" soi(en)t à zéro.

Pour l'objectif n°2, tout est fonction de ce que l'on veut faire, mais je recommande quand même d'appliquer le même processus que ci-dessus, sinon que les valeurs d'affaiblissement peuvent être plus importante. A noter que le masque utilisé dans n°2, sera aussi utilisé pour accroître la sélection.

  • pour satisfaire l'objectif n°2, il est souhaitable que les curseur "blend" ne soient pas à zéro: si vous réglez blend avec des valeurs négatives, l'image complémentaire au masque sera soustraite de l'image originale, et ajoutée avec des valeurs positives de "blend".

Plusieurs assistances sont proposées pour aider aux processus :

  • visualisation du masque
  • visualisation des modifications sans le masque
  • visualisation des modifications avec le masque

et également pour l'action sur la structure, l’aperçu d'un masque de structure.

A noter la consommation importante de mémoire liée à ces masques lors de la sélection de zones étendues.

Le fonctionnement en mode inverse

Lorsqu'il est proposé, le fonctionnement en mode inverse est simplifié, certaines fonctions ne sont pas implémentées (mask, certaines courbes,...).

Avoid color shift

Cette case à cocher vise deux objectifs :

  • mettre les couleurs dans le gamut de l'espace de travail courant (working profile) en utilisant une colorimétrie relative ;
  • ajuster les couleurs à l'aide d'une correction "Munsell" - notamment les rouges-orangés et les bleus-pourpres, lorsque la saturation dans le domaine L*a*b* a évolué notablement.

Quelques particularités du mode local (par rapport à Lab adjustements)

Voici quelques informations qui peuvent intéresser l'utilisateur. Ces informations sont souvent des particularités du mode local

Color and Light

  • Les algorithmes utilisés pour la luminance et le contraste sont différents de ceux utilisés par "Lab adjustements", ce qui peut amener quelques différences de rendu.
  • Le mode inverse, est maintenant doté de la fonction "scope", il peut servir pour l'essentiel, à réaliser des dégradés (gradient), simulation de vignettage, ou de cadres dégradés, ou générer des effets spéciaux. Dans le cas de cadres dégradés, si vous sélectionnez -100 pour "lightness", et réduisez la chrominance, et sélectionnez une valeur de "scope" supérieure à 75, la "bordure" sera noire.


Courbes

  • Une courbe L=f(L) et une C=f(C) permet de moduler la luminance ou la chrominance pour chaque RT-spot (spot de contrôle) en fonction de la luminance ou de la chrominance.
  • Une courbe L=f(H) permet de moduler la luminance pour chaque RT-spot en fonction de la teinte.
  • Une courbe H=f(H) permet de moduler la teinte pour chaque RT-spot en fonction de la teinte.

Pour les rendre actives, il est nécessaire d'activer la combobox "Curves type".


Color and Light dispose de deux améliorations : mask et structure En mode "inverse" les courbes L=f(H) et H=f(H) ne sont pas implémentées ainsi que les masques et l’aperçu des modifications.

Exposure

Ce module "ressemble" à celui en mode global RGB, mais :

  • il fonctionne entièrement en mode L*a*b*, d'où des différences de rendu;
  • il n'a pas les curseurs "lightness, chroma et contraste" dont les fonctions sont déjà présentes dans "Color and Light"
  • il y a une seule courbe "contraste", similaire à celle de L=F(L) présente dans "Color and Light". Il est évident que le rendu de cette courbe est différent de "Tonecurve" qui agit en mode RGB. Vous pouvez si vous le souhaitez activer les 2 courbes L=f(L) dans "Color and Light" et "Exposure"
  • ne pas hésiter à utiliser modérément "highlight compression" qui améliorera la sélection.

Exposure dispose de deux améliorations "mask" et "structure"

Warm - Cool

Un curseur permet :

  • de faire varier la "chaleur" de la zone sélectionnée.
  • de réduire ou supprimer certains artefacts de couleurs, par exemple dus à de multiples illuminants,...

A noter que l'algorithme ne correspond pas à une balance des blancs - même si cela en a l'apparence. L'algorithme utilise une partie de CIECAM02, le processus CAT02 qui est probablement la meilleure adaptation chromatique disponible. Par rapport à la référence D50, lorsque vous souhaitez réchauffer l'image, le curseur va au contraire abaisser la température des "viewings conditions", et bien sûr l'accroître lorsque vous souhaitez "refroidir" la zone concernée. A noter que vous pouvez obtenir un résultat similaire pour l'image entière en utilisant le module CIECAM02, avec :

  • "Scene conditions" : WP model ==> free temp + green + cat02, temperature = 5000K, Surround = average, CAT02 adpatation = 100, Yb=18, Scene absolute luminance = 400
  • aucun réglage dans "Image adjustements"
  • "Viewing conditions" : CAT02 adaptation = 100, Viewing absolute luminance = 400, Surround = average, Yb=18, et bien sûr réglage de la température souhaitée.

Vibrance

Module similaire à celui du menu principal.

Blur and Noise

Blur n'est actif que si Radius supérieur ou égal à 2.

En réduisant notablement la valeur par défaut de "scope" et en agissant éventuellement sur "Luminance only" il est possible d'obtenir des flous différenciés selon la teinte.

Vous disposez (octobre 2017), de 3 méthodes :

  • "normal" : l'algorithme de détection de forme a été amélioré. Il se rapproche de celui utilisé dans les autres modules.
  • "inverse" : algorithme simplifié, ne faisant pas intervenir "scope". L'inversion est grossière et ne permet pas une séparation fine des zones à traiter / conserver.
  • "symmetric" : ce nouvel algorithme utilise les mêmes processus que "normal" et par l'utilisation de "scope" l'utilisateur peut cibler plus précisément l'action.

Attention:

  • travailler en mode inverse, va flouter des zones importantes qui ne pourront pas être corrigées ensuite
  • l'action de "scope" peut être déroutante dans certains cas : par exemple pour un portrait les yeux - différents de la peau - seront floutés si "scope" est trop faible.

Retinex

Le nombre de réglages est réduit, par rapport au mode standard. D'autre part, "Retinex local" agit en fin de processus contrairement au mode standard qui est au début du processus Raw. Vous disposez en plus du module "raw" Retinex pleine image

  • un curseur "Chroma" qui permet d'agir sur la couleur en plus de la luminance
  • un curseur "dehaze" qui utilise l'algorithme dehaze pleine image. La combinaison des 2 algorithmes de réduction du voile atmosphérique (Retinex et Dehaze) permet une résolution élevée du traitement du voile atmosphérique, chacun des algorithmes ayant ses points forts - en particulier Retinex permet de différencier avant et arrière plan et Dehaze est globalement plus facile et pertinent dans l'action.

Par exemple pour traiter une image fortement brumeuse

  • en première étape agir dans le menu principal avec la fonction "dehaze", dans certains cas l'arrière plan ne sera pas ou peu impacté et restera brumeux
  • puis sélectionner "locallab" et "Retinex", positionner le spot dans la zone brumeuse puis
    • agir sur "dehaze"
    • puis régler "radius" avec une valeur élevée (supérieure à 100 ou 150)
    • régler contraste avec une valeur faible (inférieure à 100)
    • agir sur "scope", strength et chroma pour obtenir l'effet souhaité.

Sharpening

Seul le mode "RL deconvolution" est proposé, vous devez travailler en mode 1:1 (zoom 100%) .

Contrast By Detail Levels

  • 5 niveaux au lieu de 6 pour le mode pleine image.
  • à utiliser de préférence en mode 1:1 (zoom 100%)
  • pas de curseurs pour la gestion de la peau; le système utilisé par les RT-spot le remplace.
  • ajout d'un curseur pour la chroma

Cet algorithme permet plusieurs améliorations "locales"

  • par exemple réduire les défauts de la peau
  • accroître les perspectives et le relief sur des zones de couleurs et de structure (comme le wavelet), mais en limitant l'action (par scope) à des zones délimitées.
  • retirer des défauts (tâches étendues grises ou de couleurs) sur le capteur

Rappel - si la zone sélectionnée est grande et comprends plusieurs objets similaires en "teinte", "chroma", luma" et 'contrast", l'algorithme ne sélectionnera que celles-ci, laissant le reste de l'image inchangée.

Denoise

Cette fonction permet 3 usages et doit être utilisé en mode 1:1 (zoom 100%):

  1. grâce à la sélection "Global quality" - enhanced + chroma denoise, elle réduit très légèrement sans intervention de l'utilisateur le bruit de chroma pour améliorer la sélection dans des images légèrement bruitées
  2. Ne sélectionner qu'une zone à débruiter (par couleur...) et laisser le reste de l'image bruitée
  3. Venir en complément de l'algorithme principal. Par exemple faire un réglage général a minima, puis dans certaines zones choisies réduire le bruit plus profondément.
  4. Comme le traitement "local" est plutôt en fin de processus (le module Denoise principal est en début), il va autoriser une réduction du bruit généré par les traitements intermédiaires.


  • Zone minimum d'action pour les ondelettes (wavelet) : 128 pixels * 128 pixels
  • moins de curseurs et de courbes
  • par contre, vous pouvez différencier l'action sur la luminance et la chrominance en fonction de la grosseur du bruit - fine ou coarse.
  • de plus vous avez à votre disposition, 1 curseur "DCT"
    • l'algorithme utilise pour la luminance une transformée de Fourier (FFT - fast fourier transformed - DCT discrete Cosinus transformed)
    • les curseurs à 0, l'action de la DCT est maximum, si vous souhaitez restituer des détails, accroissez les valeurs.
  • Un curseur "Scope" permet de faire varier - avec un algorithme simplifié - l'action selon le deltaE du sujet, par exemple renforcer l'action sur la peau et laisser le fond bruité (luminance et chrominance). Au delà de "scope=99", toute la zone sélectionnée aura la même intensité de dé-bruitage, bien sûr en tenant compte de la transition.
  • Un très léger accroissement de la saturation est exécuté, si vous actionnez l'un ou l'autre des curseurs "chroma".

Qualité améliorée

  • Si vous déplacez le curseur "coarse" à 1, aussi bien pour la luminance que pour la chrominance un algorithme "amélioré" est utilisé - en réalité il fait "2 passes".
  • A la position "1" l'algorithme améliore seulement l'algorithme "fine"
  • A partir de "2" l'algorithme "coarse" est activé.

Equalizer

Vous disposez de 2 "equalizers", aussi bien pour la luminance que la chrominance.

  • Le premier renforce (par défaut) l'action sur les basses lumières. A "0" l'action sur les lumières hautes / moyennes / basses est identique.
  • Le second équilibre la force d'action sur le canal "rouge -vert" ou sur le canal "bleu - jaune"

Bilateral filter

Ce dispositif est la réplique du "Impulse denoise" des rubrique générales. de mon point de vue son action va au delà du bruit d'impulsion.


Nota : vous pouvez exclure, ou moduler l'action à l'intérieur d'une première zone sélectionnée, en ouvrant un RT-spot "Excluding spot" et en agissant sur Scope.

Cas d'usage spécifique : réduction des défauts (capteur sale, yeux rouges, ...)

Par conception "Locallab" n'a pas été conçu pour éliminer ces défauts. Néanmoins par effet de bord, certains défauts apparents et gênant en photographie peuvent être réduits voire supprimés. Ceci bien sûr n'est pas incompatible avec d'autres modules plus spécialisés incorporés ou non à "Locallab"... Au moins 3 fonctions présentes, en adaptant l'usage, peuvent être utilisées, séparément ou ensemble :

  • "Color and light" pour des défauts ponctuels ;
  • "Contrast by detail level" pour des défauts répartis ;
  • "Blur and Noise" en complément éventuel : attention cette action est assez destructrice - à utiliser avec modération.

Vous pouvez agir soit:

  • directement, cas général, sur le fichier "raw", ou "TIF", etc.
  • soit sur le fichier flat-field si vous en avez élaboré un.

Utilisation avec le module "Color and Light"

  • Activez "Color and Light"
  • Vous pouvez utiliser l'équivalent d'une fonction "yeux rouges" en choisissant un encadrement assez serré de l’œil - sélecteur circulaire centré sur le rouge, délimiteurs de spot proches de l’œil - une valeur de scope réduite, puis agir sur réduction "lightness" -100, et réduction chrominance -100.
  • De la même manière vous pouvez réduire les défaut du capteur de type "Spot IR", en choisissant un encadrement assez serré du défaut - sélecteur circulaire centré sur le défaut, délimiteurs de spot proches du défaut - puis agir sur "chrominance" en réduisant la valeur, agir éventuellement sur "scope" pour réduire l'étendue de l'action.
  • Vous pouvez dans des cas simples, réduire les défauts de type "capteur encrassé" notamment lorsque celui-ci est gras. Ceci se traduit par des taches qui apparaissent sur les fonds unis. Pour cela choisissez un encadrement assez serré du défaut - sélecteur circulaire centré sur le défaut (adaptez la taille du spot) , délimiteurs de spot pas trop proches du défaut pour permettre une transition peu visible. Puis: a) réduisez "Transition" à des valeurs faibles; b) agissez sur "luminance" et éventuellement sur "chrominance" pour approcher le rendu de la zone polluée à celui de la zone saine; c) agir modérément sur "scope" pour moduler l'action souhaitée.

Utilisation avec le module "Contrast by detail levels"

Dans le cas de capteur encrassé (de type "graisse"), et lorsque la zone est importante ou pour une série de petits défauts, Il peut être utile d'utiliser "Contrast by details levels" qui va agir comme un outil "wavelet" sur la luminance et aussi si nécessaire sur la chrominance. Dans ce cas: a) mettez le Spot de sélection sur un défaut prononcé (en adaptant sa taille si nécessaire); b) choisissez une zone de sélection large pour couvrir la majorité de la surface concernée par les défauts; c)Sélectionnez une valeur de transition assez importante; d) Activez "Contrast by detail levels" et agissez sur les niveaux 3 et 4 ou plus faibles en réduisant le contraste (valeurs inférieures à 100) et en agissant si nécessaire sur le curseur chroma.

Temps de traitement et utilisation de la mémoire

Lorsqu'on utilise la sortie JPG ou TIF, et pour le mode "normal", l'algorithme n'effectue les calculs que pour la zone délimitée. En ce sens les temps de traitement et l'occupation mémoire sont réduits. Bien sûr le temps de traitement va dépendre du nombre de spots de contrôles, de leur taille, et du type de traitement.

Si on exclue "Denoise" et "Sharp", les temps de traitement sont de l'ordre de quelques dixièmes de seconde par spot de contrôle, et le besoin en mémoire de l'ordre de quelques centaines de M.

Trois réglages agissent fortement sur les temps de traitement et le besoin en mémoire :

  • denoise qui ajoute selon la taille du spot de contrôle de l'ordre de 1 seconde et 1 M de mémoire.
  • quality "enhanced + chroma denoise", qui ajoute environ selon le spot de contrôle de l'ordre de 0.5 seconde à 1 seconde et 0.6 M.
  • "mask" ("Color and Light" et "Exposure") accroît nettement les besoins en mémoire. Attention si votre machine a des capacités limitées et si vous sélectionnez une grande zone.

Aspects logiciels

Comme le traitement est itératif pour chaque Rt-spot, il est important de connaître l'ordre

  • Blur and noise, Denoise, Vibrance, Contrast By Detail Level, Soflight, Local contrast, Sharp, Retinex, Exposure, Color and light, Avoid clor shift
  • Comme évoqué dans le texte, la majorité des fonctions a été réécrite, soit pour s'adapter à l'échelle, soit par qu'elle fonctionne en mode Lab au lieu de RGB
  • Néanmoins il y a 3 fonctions qui pourront lorsque le système sera validé, être utilisée en commun (avec bien sûr des modifications) : sharp, soflight, local contrast