Cette notice explique comment "calibrer" un objectif pour lensfun, afin de corriger automagiquement lors du dématriçage les aberrations chromatiques, le vignetage et la distorsion. Les logiciels hugin et nufraw sont utilisés. lensfun, hugin et nufraw sont des logiciels libres.
hugin est un logiciel libre permettant de raccorder plusieurs images pour en créer une seule, typiquement un panorama. Pour raccorder les images de la manière la plus transparente possible, hugin calcule, parmi bien d'autres valeurs, la distorsion et le vignetage de l'objectif utilisé.
Pour chaque diaphragme de la focale à calibrer, réaliser trois images avec de très larges parties qui se chevauchent. Les images doivent être faites en mode d'exposition manuelle en gardant l'exposition constante, en mode de mise au point manuelle et sans modifier la mise au point, et sans changer la position de l'appareil photo.
S'il s'agit de fichiers brut (raw), convertir les images en TIF sans autoriser aucune correction, par exemple avec le logiciel dcraw et la commande: dcraw -T monficher
.
Lancer hugin et choisir dans le menu Interface
l'élément Avancé
.
Dans hugin:
Onglet: Photos Bouton: Ajouter des images... Clic droit sur l'image 1: choisir cette image comme référence de position Clic droit sur l'image 1: choisir cette image comme référence d'exposition Section Optimisation / Géométrique : choisir Paramètres personnalisées Section Optimisation / Photométriques : choisir Paramètres personnalisées
Les choix Paramètres personnalisés
créent deux onglets supplémentaires: Optimisation
et Exposition
.
Dans l'onglet Optimisation
et la section Paramètres de l'objectif
, cocher uniquement les cases a
, b
et c
:
Dans l'onglet Exposition
et la section Données de l'appareil et de l'objectif
, cocher uniquement les cases Vb
, Vc
et Vd
:
Il est possible lors du chargement des images que hugin demande des informations sur l'objectif, en particulier le coefficient multiplicateur de focale:
Le coefficient multiplicateur de focale est le facteur de conversion du capteur (cropfactor) sur lequel est monté l'objectif, relativement à un capteur 24×36. Ici le facteur est 1, puisque l'appareil possède un capteur 24×36. Il serait de 1,6 pour un Canon APS-C, de 1,5 pour un APS-C non Canon, de 2 pour un Olympus, et encore plus grand pour un capteur de compact.
Revenir à l'onglet Photos
, et cliquer sur le bouton Créer des points de contrôles
.
Les points de contrôle sont des points choisis et jugés communs aux parties des images qui se chevauchent. Leur comparaison va permettre d'aligner les images pour permettre leur raccordement, et accessoirement de calculer la distorsion et le vignettage de l'objectif. La création automatique de ces points est évidemment facile à réaliser, mais pose des problèmes de précision que l'on va éliminer de façon statistiques.
Dans l'onglet Optimisation
, cliquer sur le bouton Optimiser maintenant !
L'idée est d'utiliser les fonctions statistiques de hugin pour optimiser le raccordement. Cliquer sur l'icône Afficher les points de contrôle
. En cliquant deux fois sur Distance
, on ordonne les distances dans l'ordre décroissant. Cliquer sur Sélectionner par distance
puis Supprimer
.
On élimine ainsi les points de contrôle qui sont statistiquement les plus déviants de la valeur moyenne. L'onglet des points de contrôle est alors mis en avant:
Vérifier que les barres d'alignement optimal, en haut à droite de chaque image, soient bien vertes. Elles vont du rouge au vert, en passant par l'orange et le vert pâle. Si ce n'est pas le cas, recommencer à supprimer les points de distances les plus grandes, jusqu'à ce que les barres soient vertes. Si le nombre de points de contrôle devient trop petit, typiquement inférieur à 15, créer de nouveaux points de contrôles et recommencer la procédure. Une fois les barres devenues bien vertes, on peut considérer que l'alignement des images est suffisamment bon.
Revenir à l'onglet Optimisation
et lire alors les valeurs de distorsion a
, b
et c
:
0.005; -0.022; 0.015
Les reporter dans le fichier de calibrage (voir section 6 plus bas):
<distortion model="ptlens" focal="50" a="0.005" b="-0.022" c="0.015" />
Ces valeurs de distorsion sont indépendantes du diaphragme et ne doivent figurer qu'une seule fois dans le fichier de calibrage. On aura sans doute intérêt à les mesurer aux diaphragmes les plus « performants » de l'objectif pour ne pas augmenter l'influence d'autres aberrations, typiquement f/5,6 ou f/8.
Dans l'onglet Exposition
, cliquer sur le bouton Optimiser maintenant !
hugin va alors choisir des points aléatoirement dans les parties communes des images, mesurer leur différence de luminosité et en déduire les valeurs du vignetage de l'objectif.
Les trois valeurs de vignetage Vb
, Vc
et Vd
que l'on lit alors:
-2,232 4,504 -3,214
devraient être les valeurs cherchées. Mais on a sans doute à faire à un bug de hugin et on tombe souvent, comme dans l'exemple ci-dessus, sur des valeurs énormes ! Heureusement, on peut contourner le problème: si l'on Sauvegarde le projet
puis qu'on le réouvre, enfin qu'on reclique sur le bouton Optimiser maintenant !
dans de l'onglet Exposition
, on obtient d'autres valeurs, bien meilleures:
-1,385 1,3 -0,721
Il s'agit sans doute d'un bug de hugin. Je n'ai pas cherché plus loin. On peut en tout cas reporter maintenant ces valeurs dans le fichier de calibrage:
<vignetting model="pa" focal="28" aperture="4" distance="1" k1="-0.385" k2="1.3" k3="-0.721" />
Cette opération doit être répétée pour chaque diaphragme.
Pour vérifier et affiner si nécessaire avec nufraw les paramètres obtenus à l'aide de hugin, choisir une image avec une longue ligne droite bien marquée le long du plus long côté: horizon marin, ligne horizontale d'un immeuble, etc.
Dans nufraw:
Onglet: Correction de l'objectif Onglet: Distorsion de l'objectif Modèle: PanoTools lens model
Régler individuellement les paramètres a
, b
et c
pour que la ligne soit bien droite:
Les reporter dans le fichier de calibrage.
Choisir une image avec des lignes verticales ou horizontales contrastées sur les bords: grilles, réverbères, fenêtres, que l'on charge dans nufraw:
Régler le zoom à 1:1 (100%). Si l'objectif présente des aberrations chromatiques:
Dans nufraw:
Onglet: Correction de l'objectif Onglet: Aberration chromatiques latérales Modèle: Linéaire
Régler individuellement les paramètres kr et kb pour faire disparaître les aberrations chromatiques:
Puis les reporter dans le fichier de calibrage:
<tca model="linear" focal="20" kr="+1.00080" kb="+1.00000" />
La documentation de hugin pour le calibrage d'objectifs (en anglais): Hugin tutorial - Simple lens calibration.
Il existe aujourd'hui (22 avr 2019) de nombreux outils permettant d'automatiser la procédure: Andreas Schneider a écrit (en anglais) un tutorial ultra complet sur le sujet. C'est très technique, très intéressant, bien plus long et bien plus précis que la procédure décrite dans cet article.
Torsten Bronger propose un service de calibration gratuit: il suffit de lui envoyer des images réalisées selon une certaine procédure et M. Bronger vous renvoie quelques jours après le fichier de calibration rempli par ses soins ! Ces calibrations seront aussi versées dans la base de la prochaine version de lensfun et tout le monde pourra en profiter.
Les exemples ci-dessous sont des cas extrêmes pour ce qui concerne le vignetage: sujet très lumineux avec des coins très clairs, à très grande ouverture de diaphragme, sur des capteurs grands formats, les objectifs sont plutôt grands angles, et certains ont une quarantaine d'années. De plus, la petite taille des images accentue encore plus les différences de luminosité.
À gauche, les images sans correction; à droite, avec:
Ce fichier de calibrage vierge est utilisable pour une focale fixe. Pour un zoom, il faut multiplier les lignes pour chaque focale du zoom calibrée:
Ce fichier est à placer dans le répertoire ~/.local/share/lensfun/
sur une machine Unix / Linux / MacOs X. Sur une machine Windows, je ne sais pas.
On utilise les valeurs Vb
, Vc
et Vd
issus de l'interpolation de Pablo d'Angelo calculée avec hugin: T(x)=1+V_b*r^2+Vc*r^4+Vd*r^6. T(1)=1+Vb+Vc+Vd est le coefficient de transmission de la lumière à l'extrémité de la diagonale du capteur. On calcule la perte correspondante en diaphragme avec la formule
Voici les 18 plus grandes valeurs de vignetage des objectifs que j'ai mesurés sur un capteur 24x36 (sur 178 mesures).
Objectif | Focale | f/ | T(1) | Diaph |
Voigtlander Nokton Classic 35mm f/1,4 | 35 | 1,4 | 0,135 | -2,9 |
Voigtlander Ultron 35mm f/1,7 | 35 | 1,7 | 0,166 | -2,6 |
Canon EF 20-35mm f/3,5-4,5 USM | 20 | 3,5 | 0,198 | -2,3 |
Canon nFD 50mm f/1,4 | 50 | 1,4 | 0,208 | -2,3 |
Voigtlander Ultron 35mm f/1,7 | 35 | 2 | 0,208 | -2,3 |
Voigtlander Nokton Classic 35mm f/1,4 | 35 | 2 | 0,218 | -2,2 |
Canon EF 20-35mm f/3,5-4,5 USM | 20 | 4 | 0,228 | -2,1 |
Minolta MD 24mm f/2,8 | 24 | 2,8 | 0,233 | -2,1 |
Sigma 35mm f/1,4 DG HSM | 35 | 1,4 | 0,235 | -2,1 |
Revuenon Auto Revuenon MC 28mm f/2,8 | 28 | 4 | 0,236 | -2,1 |
Canon EF 35mm f/2 | 35 | 2 | 0,242 | -2,0 |
Revuenon Auto Revuenon MC 28mm f/2,8 | 28 | 2,8 | 0,242 | -2,0 |
Industar I-61 52mm f/2,8 | 52 | 2,8 | 0,247 | -2,0 |
Canon EF 24mm f/2,8 | 24 | 2,8 | 0,272 | -1,9 |
Minolta MD 50mm f/1,7 | 50 | 1,7 | 0,28 | -1,8 |
Canon EF 28mm f/1,8 USM | 28 | 1,8 | 0,282 | -1,8 |
Canon nFD 24mm f/2,8 | 24 | 2,8 | 0,285 | -1,8 |
Industar I-50 50mm f/3,5 | 50 | 3,5 | 0,288 | -1,8 |
La version 0.2.8 de lenfun n'accepte que les valeurs de vignettage compris entre -1 et +2. Or il n'est pas rare que pour des grands angles en plein format à grande ouverture, on ait des valeurs plus petites que -1. lenfun corrige en remplaçant ces valeurs trop petites par -1, ce qui conduit quelquefois à de mauvaises correction du vignettage. Ce patch autorise des valeurs comprises entre -2 et +2:
Je préfère vraiment les contacts à l'ancienne, par courrier électronique à l’adresse jpsmail(at)free.fr. Antispam : penseras-tu à remplacer (at) par @ dans l’adresse ? Que cela ne t'enpêche pas d'ajouter un commentaire :
par contre j’ai fait plusieures séries de photos pour un objectif samyang AE 14mm et je trouve des résultats différents dès lors que j’utilise des photos pourtant je fais le calcul des points de controles via cpfind pour etre reproductif et je mets mon pied bien à l’horizontal.
et les distortions ne sont pas les memes pour chaque ouverture de diaph pour le meme objectif et la meme série de photos (mais peut etre que les angles le sont différents entre chaque photo)
merci de votre réponse.