On dit qu'une image est voilée lorsqu'elle souffre de l'arrivée inopportune d'une lumière parasite ; l'effet le plus visible est que les «noirs» ne sont plus noirs. Le remède usuel est un simple réglage des niveaux, mais cela ne marche pas très bien quand le voile n'est pas uniforme ou/et quand il est important. Cet article propose une autre approche pour faire face à ce problème. Bien entendu, il ne faut pas espérer de guérison miraculeuse d'une image gravement voilée ; le meilleur conseil qu'on puisse donner est de la refaire dans de meilleures conditions, mais ce n'est pas toujours possible.
Le voile atmosphérique n'est qu'un cas particulier, mais particulièrement important. C'était toujours un sujet d'études très savantes ces dernières années — nous ne citerons que l'article HST publié en 2011 où l'on décrit une méthode (quasi) automatique pour nettoyer les images, mais on on pourra en trouver d'autres à partir de sa bibliographie ou à partir de ce que votre moteur de recherches favori pense du «dehazing». Apparemment, ces études ne se sont pas encore traduites par une grande variété de logiciels accessibles au grand public ; je ne connais guère que le plugin NeutralHazer, sorti en 2012 par l'équipe des développeurs du logiciel de photos panoramiques Autopano, qui donne souvent satisfaction... mais pas toujours ; nous en parlerons plus en détail à la fin de cet article. Il y aurait aussi une application pour l'iPad, mais dont il est difficile de juger de l'intérêt réel au vu des écrans de présentation sur l'App Store. Enfin, je ne connais rien qui puisse faire face à des voilages autres que le voile atmosphérique. Bref, faute de plugin polyvalent et sophistiqué à l'heure actuelle sur Photoshop, il n'est pas inutile de réfléchir à ce qu'on peut faire avec les outils de base de Photoshop.
Nous allons expliquer les insuffisances du réglage des niveaux puis nous présenterons notre nouvelle méthode, en essayant de rester aussi pragmatique que possible. En deux mots, il s'agit de préparer d'une façon ou d'une autre un «calque de voilage» reproduisant la lumière parasite et de le retrancher à l'image initiale, de préférence en gamma=1. Les explications suivent !
En fait, cette méthode n'est pas si nouvelle que ça, dans la mesure où on peut trouver ses fondements dans la littérature scientifique, mais celle-ci n'est pas d'accès facile au profane. J'espère que cet article pourra être utile, en attendant que ces travaux se concrétisent par des plugins opérationnels.
Tout le monde a fait l'expérience du voile atmosphérique. La
figure ci-dessous rappelle de quoi il s'agit (à gauche) et quelle est la recette
élémentaire pour le combattre (à droite).
La scène a été prise de loin. Ce qui se passe est que
l'air lui-même entre la scène et l'appareil photo n'est pas
rigoureusement transparent et qu'il agit comme une plaque de verre
très légèrement dépolie, avec des
irrégularités qui captent la lumière venant de partout
et la rediffusent dans toutes les directions ;
une petite partie prend le chemin de l'appareil et se superpose à la
lumière provenant de la scène photographiée. L'effet
est que les «noirs» de cette scène se remplissent de
cette lumière parasite et que ce ne sont plus des vrais noirs.
L'image prend un aspect voilé — comme si on la regardait
à travers un voile très fin (ce qui n'est qu'une autre
façon de faire un dépoli très léger).
Le remède élémentaire est illustré sur la droite. On ouvre un réglage de niveaux. On constate que l'histogramme ne démarre pas tout de suite à gauche — cela traduit le fait que les tons les plus sombres de l'image ne sont pas noirs — et on ramène le curseur des noirs sur le début de l'histogramme, comme indiqué en rouge dans l'insert.
Les «irrégularités» de l'air responsables de cette diffusion de la lumière peuvent être de simples poussières (surtout par temps chaud) ou de fines gouttes d'eau (brumes), mais ce peut être les molécules d'air elles-même. Ce dernier mécanisme — la diffusion de Rayleigh — est responsable de la couleur bleue du ciel ; c'est la lumière du soleil qui est rediffusée, mais le processus est beaucoup plus efficace pour de courtes longueurs d'onde (le bleu) que pour les grandes longueurs d'onde (le rouge), ce qui fait que c'est le bleu qui prédomine.
Le voile blanchâtre de la photo précédente est
probablement due à une brume très légère. Par
temps sec et avec un air sans trop de poussières, la diffusion de
Rayleigh joue un rôle plus important quand on photographie à
plusieurs kilomètres et le voile atmosphérique devient
bleuté. C'est particulièrement évident dans la photo
suivante (site d'Erice, en Sicile) :
Pour corriger, on compliquera légèrement la méthode
élémentaire précédente en opérant couche
par couche afin de compenser cette dominante bleutée ; les trois
flèches dans l'insert montre le déplacement des trois
«curseurs des noirs» en rouge, en vert et en bleu.
La figure montre aussi une difficulté très courante dans les images voilées : la correction marche pour le bas de l'image mais pas pour le haut parce que le voile n'est pas uniforme dans l'image. Le haut de l'image correspond à une zone bien plus éloignée que le bas ; pour arriver à l'appareil photo, il a fallu traverser une tranche d'atmosphère bien plus épaisse, où l'accumulation de la lumière diffusée a été bien plus forte.
Pour faire face à cette difficulté, la première
idée serait d'ouvrir un calque de réglage (niveaux ou
courbes) paramétré pour corriger l'image là où
le voilage est le plus épais, puis, de diminuer cette correction en
mettant du gris dans le masque du calque. En général,
les résultats seront
décevants, à moins de jouer également sur les curseurs des
gris — et encore les réglages restent très délicats.
La figure ci-dessous montre une tentative ;
on voit à droite les courbes de correction la courbure dénote
l'action sur les curseurs des gris) et le masque
utilisés.
Le problème, très probablement, vient de ce que non
seulement l'intensité du voile n'est pas uniforme, mais sa
coloration non plus, et il est très difficile de compenser cette coloration sur
toute l'image.
On obtiendra mieux en multipliant des calques de réglage localisés, mais le travail reste généralement très délicat. On y reviendra dans la conclusion de ce papier.
Nous allons donner un certain nombre d'exemples de situations qui ont conduit à des images voilées ; liste non limitative !
Photographie à travers la vitre d'un autobus. Malheureusement, la vitre n'est pas très propre, ses saletés éparses diffusent la lumière et créent un voilage non uniforme dans l'image.
On ne confondra pas cette situation avec la photo d'objets dans une vitrine, où on prend à la fois les objets et le reflet indésirable du monde extérieur dans la vitrine. Si ce reflet est net, on aboutit à un mélange inextricable de deux images. Il faudrait que ce reflet soit extrêmement défocalisé pour qu'on puisse le considérer comme un voilage — ou bien qu'il soit uniforme, ou presque, comme le reflet d'un ciel bleu lorsqu'on photographie des poissons au fond d'une eau tranquille.
Condensation de buée sur l'objectif. Voilage non uniforme autour des sources de lumière (que celles-ci soient visibles dans l'image ou non).
Pollution des images d'astronomie par l'éclairage nocturne. Ici, l'auteur a essayé de photographier la lumière zodiacale.
Dans le même genre, on pourra voir notre travail autour de la comète PANSTARRS [ici, aller à la conclusion]
Grosse tache de flare localisée au centre de l'image, créant un voilage localisé sur la roche et les jambes du personnage (on n'abordera pas le traitement de ces taches dans cet article)
Le flare est provoqué par une source de lumière intense dans le champ capté par l'appareil photo ou à proximité. Dans le premier cas, au lieu de se focaliser sur l'image de cette source, les rayons sont partiellement réfléchis sur chaque surface verre-air des lentilles de l'objectif — très faiblement, à cause de la qualité des couches anti-reflets de ces lentilles, mais ça se verra quand même si la source de limière est assez forte — et ces rayons erratiques arrivent un peu n'importe comment sur le capteur, formant diverses taches et halos. Dans la dernière photo, on note aussi les traits qui rayonnent à partir de l'image du soleil. Là, il s'agit d'un phénomène de diffraction tout différent: quand un rayon lumineux passe à proximité des lamelles métalliques du diaphragme, une petite partie de la lumière «s'enroule» autour de l'arête de ces lamelles, créant une petite nappe lumineuse perpendiculaire à cette arête qui arrivera finalement dans l'image pour former ces traits rayonnants.
Le principe général que le voilage résulte de l'addition d'une lumière parasite à ce qu'on cherche à photographier implique une relation de la forme
(1) (RVB)_captés = atténuation x (RVB)_scène + (RVB)_voilage
L'atténuation figurant dans cette relation peut provenir de deux
mécanismes :
— si le voilage provient de la lumière émise par
un matériau
translucide, de la traversée de ce matériau
(et dans le cas d'un voilage atmosphérique sur un paysage, il faut
s'attendre à ce que cette atténuation augmente avec le
voilage pour les lointains) ;
— de la correction d'exposition pratiquée par le
photographe pour
éviter toute surexposition.
Cette formulation ne prend tout son sens que si ces composantes RVB sont proportionnelles aux énergies lumineuses en jeu. C'est bien le cas pour les composantes brutes délivrées par le capteur (celles du fichier RAW), mais pas pour celles qui figurent dans les fichiers images usuels. Entre les deux, les RVB ont subi une «transformation de gamma» du type
(2) (RVB)_image = (RVB)_brut ^(1/gamma)
où figure le gamma de l'espace colorimétrique dans lequel on a transcrit l'image — par exemple gamma=2,2 pour l'espace Adobe(RGB)1998.
Cette intervention du gamma complique nettement les choses. Pour revenir à la simplicité de la formulation (1), il faut recoder les RVB en annulant cette transformation. Le plus simple pour cela est
Pour comprendre l'intérêt d'une telle opération,
suivons les opérations décrites dans la figure suivante :
On y voit successivement
Ces difficultés inattendues sont une conséquence directe du gamma des espaces colorimétriques usuels. Si on passe en gamma=1, on récupère tous les gris au moyen d'une simple égalisation des niveaux dans les trois couches RVB, c.à.d. par un réglage de niveaux ou de courbes où on ne manœuvrerait que les curseurs noirs et blancs.
Comme l'image voilée résulte peu ou prou d'un mécanisme d'addition des lumières entre la scène qu'on cherche à photographier et une lumière parasite indésirable, si on sait isoler cette dernière et qu'on la retranche de la scène globale, on devrait retrouver la scène originale (à une atténuation près), que le voilage soit uniforme ou non dans l'image. Le processus sera le suivant :
La figure suivante illustre la mise en œuvre de cette méthode : On y voit successivement l'image voilée, une image de la lumière parasite utilisée et le résultat final. Si vous voulez faire l'expérience vous-même, faites un clic droit sur la gauche ou le milieu de la figure pour télécharger les fichiers correspondants en 750 px de large.
Une récupération parfaite demande beaucoup de précision dans les opérations successives [explications détaillées ici], précision incompatible avec le travail réel, ne serait-ce que parce qu'on n'aura jamais sous la main la distribution exacte du voilage. La récupération d'une image voilée est toujours une opération de sauvetage dans laquelle on ne peut pas être trop exigeant.
La dernière remarque ouvre la porte à des processus approximatifs. S'il était possible d'éviter de passer en gamma=1 et néanmoins d'aboutir à des résultats «convenables», bien des utilisateurs seraient rassurés de ne pas avoir à recourir à une démarche aussi ésotérique.
Si on se contente de rester dans l'espace colorimétrique d'origine et de simplement mettre le calque «voilage» en mode différence, on obtient le résultat ci-contre ; les noirs sont bien restaurés, mais la surcorrection dans les tons médians et clairs est manifestement inacceptable ; il faut absolument l'inhiber.
Pour cela, une technique simple consiste à accoler un masque de fusion au calque «voilage» dans lequel on mettra un négatif de l'image qu'on vient de reprendre : les tons clairs de l'image seront sombres dans le masque et l'effet du calque sera atténué, voire annulé si on va jusqu'au noir dans ce masque. On voit résultat ci-contre : l'amélioration est très satisfaisante dans les tons clairs, mais pas assez dans les tons médians.
En fait, pour un voilage uniforme, on peut montrer qu'on obtient le même effet qu'avec une simple égalisation des niveaux : le noir et le blanc sont biens restaurés, mais les tons médians sont sur-corrigés. Pour améliorer encore les résultats, on a vu qu'il fallait utiliser des courbes et opérer couche par couche. Ici, on appliquera une courbe sur le masque de fusion, du genre indiqué à gauche (comme le calque apporte une surcorrection, il faut foncer son masque pour diminuer celle-ci). Bien entendu, on ajuste cette courbe au jugé. On aboutit à quelque chose comme ce qu'on voit à droite : ce n'est évidemment pas parfait, mais il ne faut pas oublier que l'œil est très sensible aux petites variations de couleur quand on part du gris ; ces résultats devraient être suffisants dans les applications pratiques, surtout quand on ne sait pas ce que devrait être une correction «parfaite».
Cliquez ici pour récapituler le détail des opérations à effectuer.
Nous arrivons maintenant au problème principal : à partir de l'image voilée comment estimer la distribution de lumière parasite ? Il n'est évidemment pas question d'y arriver de manière exacte. En effet, les seuls points où on soit certain du voilage sont ceux qui devraient être noirs et, normalement, il n'y en pas tant que ça dans une image ; il faudra faire des hypothèses entre deux points noirs, par exemple que ce voilage varie régulièrement. Un autre facteur d'incertitude est que les points «noirs» sur lesquels on va s'appuyer ne sont peut-être pas si noirs que ça, auquel cas le voilage local sera surestimé.
On est néanmoins obligé de s'appuyer sur les points les plus sombres de l'image pour
obtenir une estimation du voilage. Une manière commode de mettre ces
points en évidence est d'utiliser le menu
Filtre>Divers>Minimum, qui remplace chaque pixel par le pixel
le plus sombre (primaire par primaire) dans un rayon donné fixé par
l'opérateur.
La figure suivante montre ce qui se passe quand on augmente ce rayon.
Les couleurs les plus sombres envahissent peu à peu toute l'image
quand on augmente le rayon.
Les zones claires de l'image se rétrécissent mais peuvent
rester longtemps visibles si elles étaient suffisamment étendues au
départ (comme la portion de mur à gauche de la porte). Il
est évident que ce qui reste de ces zones claires ne correspond pas
à au voilage local et qu'il faut chercher celui-ci
dans les zones plus sombres à proximité.
Le processus global est le suivant :
Lors de l'application du filtre minimum, il vaut mieux éviter de
prendre un rayon trop grand sous prétexte de minimiser les zones
claires. On voit ci-dessous ce que devient notre image, traitée
de la même façon (comme nous venons de l'expliquer), selon qu'on utilise 50 px comme rayon de
minimum (à gauche) ou bien 200 px (à droite), à comparer
aux 4000 px de largeur de l'image.
Manifestement, la suppression du voilage est plus convaincante à
gauche bien qu'on n'ait pas davantage raboté dans les
noirs, comme le montrent les histogrammes en insert.
Les variations rapides du voilage dans l'image peuvent provoquer cet effet.
On voit ce mécanisme à l'œuvre ci-dessus, avec la
grosse tache claire en haut de la porte — plus claire que le
«noir» voilé juste à côté. Dans
l'application du filtre minimum avec un gros rayon, ce noir va
envahir la porte et on ne verra plus l'excès de diffusion sur
celle-ci.
Remarques sur l'utilisation du filtre minimum
(1) — Avec de grandes images observées à un petit facteur d'échelle (25% ou moins), on peut être surpris de voir une grosse différence entre la prévisualisation et l'image finale, celle-ci présentant beaucoup plus de carrés sombres que la prévisualisation. C'est dû au fait que cette dernière repose sur un calcul rapide où on ne prend pas en compte tous les pixels de l'image. Pour ne pas être surpris, il faudra zoomer à 100% (on utilise alors tous les pixels visibles à l'écran) avant de lancer le calcul définitif.
(2) - En cas d'image très bruyante, le filtre minimum risque de se caler sur des pixels anormalement sombres à cause du bruit. Il faut donc commencer par éliminer ceux-ci, par exemple au moyen d'un un filtre Bruit>Mediane avec un grand rayon (15-20 px), avant d'appliquer le filtre minimum. La figure suivante en donne un démonstration (cliquer sur les liens ou passer la souris dessus pour voir les différents états de cette image) :
Image initiale
(cliquez sur ce lien pour recharger l'image initiale)
Essai sans débruitage
Noter que le voile persiste en bas et à gauche
Essai après débruitage
Dans ce cas particulier, ce débruitage initial a
été fait avec
un filtre Mediane de rayon 20px (pour une image de 4600px)
(3) - Lorsque l'image à retoucher contient plusieurs plans avec des
voilages différents (comme l'image de montagne dans notre
introduction), il faut prendre garde que le filtre minimum déplace
les contours. Il faudra commencer par prendre une sélection des
contours afin de restaurer ceux-ci dans le calque en mode différence
Il arrive souvent que le voile varie très régulièrement dans l'image. Par exemple, dans un paysage pas trop accidenté, le voilage atmosphérique est généralement uniforme dans le sens horizontal et il croit peu à peu dans le sens vertical au fur et à mesure qu'on se rapproche de l'horizon. On peut donc être tenté d'égaliser les niveaux dans deux bandes horizontales étroites (comme indiqué dans la figure) et de les raccorder par un gradient continu. Plus précisément, on pourrait procéder de la manière suivante :
La figure suivante permet de confronter les résultats des différentes approches dans le processus de correction. Survolez les différents liens ou cliquez dessus pour voir les différents états de l'image et pour lire les explications correspondantes dans le cadre sous l'image :
Correction 7 (NeutralHazer)
Un des problèmes spécifiques à ce genre d'image est que le voilage (plus précisément l'épaisseur de brume traversée) n'augmente pas linéairement avec la hauteur dans l'image, mais beaucoup plus vite quand on se rapproche de l'horizon. L'interpolation linéaire que nous allons pratiquer entre la correction en bas de l'image et celle autour de l'horizon n'est donc pas très bien adaptée.
En conclusion :
Autres formes d'interpolations
La photo de lumière zodiacale dans la section 2 va nous donner
l'occasion de pratiquer un autre type d'interpolation.
Survolez les différents liens ou cliquez dessus pour suivre l'histoire.
La lumière zodiacale vient de l'éclairage par le Soleil des poussières réparties dans tout le système solaire autour du plan de l'écliptique (là où tournent les planètes). Bien entendu, la lumière réfléchie est très faible et sa perception exige que le Soleil soit couché et que la nuit soit bien noire, ce qui n'est pas vraiment le cas ici.
Dans cette section, nous abordons les images contenant différents «plans» étagés dans l'espace, portant chacun des niveaux de voilage différents. Le prototype en est une photo de montagne où chaque sommet peut en masquer un autre plus éloigné et donc plus voilé. Le niveau de voilage varie alors fortement quand on franchit le contour de ce sommet, et, si on applique le filtre minimum à toute l'image sans plus de précaution, on voit (à droite) que les zones peu voilées bavent sur les zones avoisinantes plus voilées (sur le rayon du filtre minimum), ce qui se traduit ensuite par des sous-corrections et des halos inacceptables le long des contours.
Pour éviter ça, il faut commencer par une étape
de détourage où on décomposera l'image en une somme de zones
jointives où le voilage varie régulièrement. Par exemple, dans
l'image précédente, on peut distinguer 4 de ces zones, limitées par les
pointillés indiqués à droite. Chacune de ces zones
sera recopiée dans un calque indépendant ; ensuite, sur chacun de ces
calques,
— on verrouillera les pixels transparents,
— on appliquera le filtre minimum,
— et on estompera les carrés ainsi obtenus au moyen d'un
flou insensible aux pixels transparents extérieurs à la zone
(dans Photoshop, on appliquera un flou de surface).
Le calque de voilage global s'obtient alors par la recombinaison de
ces calques partiels.
Bien entendu, c'est un peu plus compliqué que ça dans la
réalité. Survolez les différents liens ou cliquez
dessus pour suivre
d'un peu plus près ce qui va arriver à l'image
précédente.
état 8 (NeutralHazer)
L'image a été découpée en 4 zones comme indiqué dans la figure précédente — en l'occurence, je me suis tout simplement servi de l'outil «sélection rapide» de Photoshop, après avoir fortement augmenté le contraste par accentuation. Une première difficulté est d'obtenir des zones bien jointives.
On aura compris que ces détourages vont beaucoup compliquer le
travail — c'est l'un des intérêts des travaux scientiques sur ce sujet
(par exemple HST) que de les faire automatiquement, mais hélas leur mise en
pratique se fait attendre.
Et tout ça pour des images qui seront très
généralement très discutables sur le plan de
l'intérêt photographique... Gageons toutefois que leurs auteurs y
discerneront d'autres vertus pour se lancer dans l'aventure — ou y lancer
des amis avec plus de bouteille dans l'art de la retouche.
Chaque fois qu'une image contient des régions étendues sans véritable point sombre, la méthode du minimum ne peut pas fournir d'estimation satisfaisante du voilage dans ces régions. Comme nous l'avons fait dans la Section 6, on peut parfois s'en tirer manuellement en recopiant ce qu'on a obtenu juste à côté avec un pinceau ou le tampon en mode obscurcir, mais ce n'est pas toujours si facile à faire. Il existe une autre méthode, dite «du canal sombre» (dark channel), censée marcher nettement mieux, mais qui ne conduit qu'à une visualisation N&B du voile, sans sa coloration éventuelle.
Cette technique est due aux auteurs de l'article que nous avons cité plusieurs fois (HST). Ce «canal sombre» est tout simplement l'image N&B obtenue en prenant pour chaque pixel la valeur de gris correspondant à la plus petite des trois composantes RVB de l'image initiale. Cela conduit à des valeurs faibles non seulement pour des points à l'ombre, mais aussi pour tous les points de couleur vive, puisqu'une saturation élevée implique que l'une des trois composantes RVB soit petite. De fait, après observation sur quelques milliers d'images naturelles non voilées (prises au hasard sur Flick'r), les auteurs ont constaté que le procédé conduit généralement à des images très foncées, où les points clairs subsistants disparaissent aisément après l'application du filtre minimum, laissant des images quasi-noires. En présence de voilage, toutes ces composantes RVB minimales augmentent ; l'image finale n'est plus noire mais simplement grise et ce niveau de gris devrait donc donner une bonne estimation de l'intensité du voile.
Cliquez ici pour les détails pratiques de mise en œuvre de cette technique.
Malheureusement, il est très facile de mettre en défaut ce principe du canal sombre — bien plus que ce que ses auteurs laissent croire. Rappelons qu'une image non voilée (et bien posée) devrait conduire à une image quasi noire après l'application d'un filtre minimum. Cela fonctionne bien avec un paysage de verdure : (à droite, on a appliqué un minimum de 15 px de rayon pour une image de 600 px de large. L'image s'éclaircit dans les lointains précisément parce que ceux-ci sont voilés ; quant au ciel, bleu ou non, il ne peut jamais mener au noir)
Par contre, le moindre paysage maritime ne conduit jamais à du noir
sur la mer. Le gris obtenu ne pourra donc jamais représenter le voile
éventuel ; il sera toujours trop clair. Cela conduirait à une forte
surcorrection si on n'en tenait pas compte.
L'image suivante va nous permettre de voir ce que donne cette méthode. Survolez les liens ou cliquez dessus pour voir les différents états de l'image et les explications correspondantes dans le cadre sous l'image.
2 - «Voile» par minimum simple
4 - Correction avec le canal sombre
6 - Minimum simple : correction brute
7 - Minimum simple + désaturation.
8 - NeutralHazer.
Comme il y a clairement deux plans de voilage, tout notre travail a commencé par un détourage du premier plan de végétation et la mémorisation de la sélection correspondante.
Ce plugin est explicitement destiné à réduire le voile atmosphérique dans des paysages (à l'origine, il avait été développé pour améliorer des images panoramiques). De fait, il ne fonctionne absolument pas sur la scène africaine ou sur le voilage accidentel de la salle de spectacle de la section 2 ou sur nos images théoriques de chartes voilées des sections 3 ou 4. Il donne évidemment de bons résultats avec les images de démonstration fournies par ses concepteurs, mais mes propres essais me conduisent à une attitude plus réservée. Le traitement de l'image ci-dessous offre un déroulement typique de ce qui se passe ; passer la souris sur les numéros en dessous de l'image pour passer d'une étape à l'autre (cliquez pour en faire l'image de référence).
En l'occurrence, il s'agit d'une image panoramique, précisément le cœur de cible du logiciel
L'infidélité de la prévisualisation peut aller jusqu'à de véritables catastrophes ; par exemple à partir de l'image d'Erice de notre Section 1, nous avons pu obtenir le résultat suivant :
Quand j'ai réduit la taille de l'image pour préparer cette page web (je suis passé de 3872 px à 600 px de large), le résultat avec les mêmes réglages est passé de la carricature ci-dessus à un résultat normal, c.à.d. un peu différent de la prévisualisation, mais sans excès. Il s'agit manifestement d'un bug que les concepteurs, espérons-le, sauront corriger.
Il semble que les «accidents» comparables au résultat précédent n'arrivent que pour des images fortement voilées. Pour des photos ordinaires sans trop de brume (comme l'image de New-York de la section 7), ça se passe généralement bien. Et puis, la mise en œuvre du programme est très simple, bien plus simple que les différentes recettes exposées dans cet article... Quand ça se passe bien, on n'a pas de souci avec la surcorrection inhérente à l'égalisation (simple) des niveaux, on n'a pas besoin de recourir aux mystères du gamma=1...
Dans la littérature scientifique, on ne manque jamais de dire que
le problème se présente mal ; en
effet, il s'agit ni plus ni moins de résoudre sur
chaque pixel une équation du
genre
(RVB)_captés = atténuation x (RVB)_scène +
(RVB)_voilage
où on ne connaît que ce qui figure à gauche et rien de ce qui
figure à droite ; autrement dit, trois inconnues pour une seule
équation, deux de trop ! Pour avancer, on cherche à réduire les possibilités
sur le voilage et l'atténuation au moyen d'hypothèses plus ou moins
plausibles, mais celles-ci, hélas, ne sont pas toujours
vérifiées.
En attendant l'avancée théorique décisive, on retouche donc les images comme on peut. On dispose bien de NeutralHazer, mais celui-ci ne fonctionne que pour le voile atmosphérique dans les paysages et pas toujours très bien quand ce voile est trop épais. Souvent, on n'aura guère d'idée bien claire de ce qu'il faudrait obtenir et on ne pourra avancer qu'au jugé, en estimant que telle ou telle intervention donne un résultat plus «sympathique». Mais il arrive qu'on reste malheureux... En règle générale, on aura intérêt tout bonnement à recommencer la prise de vue dans de meilleures conditions. Mais quand ce n'est pas possible et qu'on tient à l'image, il faut bien se débrouiller.
La photo d'Erice avec laquelle nous avions commencé cet article (très fortement voilée) va nous permettre de résumer le chemin parcouru à travers la comparaison de quelques traitements possibles. A noter que chacune des versions qui suivent ont été faites sans avoir les précédentes sous les yeux, c.à.d. sans chercher à les faire converger les unes vers les autres dans une dernière étape de post-traitement. Au lecteur de choisir... ou de trouver autre chose !
1 — Image
originale
2 — Réglage de niveaux multiple (en restant dans l'espace d'origine)
3 — Niveaux par courbes (avec «correction de gamma», toujours dans l'espace d'origine)
4 — Calque de voilage par minimum en gamma=1
5 — Avec le canal sombre, toujours en gamma=1.
Cette image a été empruntée dans un forum. Le bout d'arbre noir au premier plan est sans doute une maladresse de l'auteur, mais je l'ai conservé — il complique un peu les choses (il faut veiller à l'exclure de tous les calques qui vont se superposer), mais pas trop.
Notre dernier conseil sera de ne pas avoir peur de passer en gamma=1 ; le travail y sera plus facile.
Merci à tous ceux qui m'ont fourni les images sur lesquelles j'ai travaillé, mes camarades de club mais aussi Noëlle Adam et d'autres correspondants plus anonymes dans les forums.