Archives de catégorie : photo

Programmer ImageMagick avec Powershell

ImageMagick permet le traitement d’image en ligne de commande. Il supporte notamment la création de calques auxquels on peut ajouter des masques. J’en ai profité pour programmer un optimiseur de tonalité photo en associant à ImageMagick Powershell.  

Role du  script

Optimiser les tons d’une photo en contrôlant ses hautes lumières, tons moyens et ombres. Le script pourra servir de canevas à la création de nouveaux traitements grâce à une procédure de test.

Description

Schématiquement le script effectue les actions suivantes : 

  1. Affectation des préférences utilisateur et initialisation de 3 masques de luminances. 
  2. Placer une première image comme arrière-plan.
  3. Dupliquer l’ arrière-plan et placer cette copie au-dessus en tant que calque.   
  4. Modifier l’aspect du calque (repeindre le calque en rouge en mode test, modifier luminosité, contraste et saturation en mode optimisation)   
  5. Définir la transparence du calque à partir du premier masque de luminance. Tout ce qui est noir dans le masque rendra le calque totalement transparent et blanc totalement opaque.  
  6. Répéter les étapes 3 à 5 en utilisant 2 autres calques qui seront associés aux 2 autres masques.
  7. En mode optimisation : fusionner l’arrière-plan et les 3 calques pour créér une image optimisée. En mode test : créer 3 images qui montreront l’action des 3 calques) .  

Le code

# optimiseur_photo.ps1
# Traitement d'image : Optimiseur de la tonalité
# Testé sous Windows 8.1 et 10 avec ImageMagick 7.0.10 

# Pour créer des png qui montrent l'action des masques
# Traite la première image puis quitte. 
$test_mode = 0

# Indique le répertoire contenant les images a optimiser 
$dossier_source = "C:\votre\dossier\images\a optimiser"
# Particule ajoutée au nom  des images résultantes pour les différencier
$distinctif ="_optim_out"

# Options pour la création des masques 
$canal = "-colorspace Lab -channel r -separate -delete '1,2'"
$flou = "-blur 0x5"

# Créations des masques. Si modification faire 
# attention aux `` qui permettent d'échapper les parenthèses 
# et d'écrire les chaines sur plusieurs lignes 
 
$hautes_lumieres = " ``( -clone 0 $canal -level '50%,100%' ``
+channel $flou -depth 8 -write mpr:masque.png  -delete 0 ``) " 

$tons_moyens = " ``( -clone 0 ``( -clone 0 $canal  ``
-level '50%,100%' +channel ``) ``( -clone 0 $canal  -negate  ``
-level '50%,100%'  +channel ``) -delete 0  ``
-compose blend -composite -negate $flou -depth 8 ``
-write mpr:masque.png  -delete 0 ``) " 

$ombres = " ``( -clone 0 $canal  -negate -level '50%,100%'  ``
+channel $flou -depth 8 -write mpr:masque.png  -delete 0 ``) " 

# Options pour les calques 
if ($test_mode)
{$action_hl= $action_tm = $action_o  = "-fill red -colorize '100%'" }  
else { $action_hl = "-brightness-contrast '-23,23'"  
       $action_tm = "" 
       $action_o = "-sigmoidal-contrast '5,0%' " }

# Création des calques 
$calque_hl = "``( -clone 0 $action_hl  mpr:masque.png ``
-compose copy_opacity   -composite  ``)"
$calque_tm= "``( -clone 0 $action_tm  mpr:masque.png ``
-compose copy_opacity   -composite ``)"
$calque_o= "``(  -clone 0 $action_o  mpr:masque.png  ``
-compose copy_opacity   -composite ``)"

# Traitement des images 
$listes_image = Get-ChildItem $dossier_source -File |
where { $_.name -notmatch ".*$distinctif.*" }

foreach ($srcitem in $listes_image )
  { $srcfullname = $srcitem.fullname    
    $dstbasename = $dossier_source +"\"+$srcitem.basename+"$distinctif"
    write-host "Traitement de l'image $srcitem ..."

    #assemblage de la commande et exécution
    if($test_mode) {
    $cmd = "magick convert '$srcfullname' $hautes_lumieres $calque_hl ``
    $tons_moyens $calque_tm $ombres $calque_o -delete 0 '$dstbasename%01d.png' "
    invoke-expression  -command $cmd
    exit
    }
    else  {    
    $cmd = "magick convert '$srcfullname' $hautes_lumieres $calque_hl ``
     $ombres $calque_o $tons_moyens $calque_tm -compose over ``
    -flatten '$dstbasename.jpg' " 
    invoke-expression  -command $cmd
    }
  }

Les images à traiter :

Le carrousel ci-dessous montre les 4 images jpg que j’ai placées dans un dossier spécifique. Elles présentent des écarts  de luminosité importants . L’ optimiseur sera chargé de corriger cet écart.

Utilisation

ImageMagick est installé sur ma machine Windows : https://imagemagick.org/script/download.php

J’ouvre le script (l’extension .ps1 est importante) par un clic droit puis je choisi Modifier. L’ ISE  (Integrated Scripting Environment ) s’ouvre et affiche le script en haut (sinon vérifier Afficher -> Afficher le volet de script) . Je renseigne la variable $dossier_source avec le chemin du dossier qui contient mes images.

En mode test

Ce mode va créer une image distincte pour chaque calque. Une seule image source est traitée dans ce mode.

Pour exécuter le script dans ce mode, j’ai placé la variable $test_mode à 1. Puis j’exécute le script (icone lecture ou touche F5). Dans mon dossier apparaissent 3 nouvelles images png représentant les 3 calques. Les zones qui restent contrôlées par le calque après application du masque sont en rouge. L’intensité de la couleur nous donne une indication sur la prépondérance du calque sur l’arrière plan. Dans l’ordre le carrousel ci-dessous montre le calque hautes lumières, puis tons moyens, et enfin ombres.

En mode Optimisation

J’ai replacer $test_mode à 0. Le script peux maintenant traiter toutes les images placées dans le dossier $dossier_source (un filtre exclut les images qu’il a lui-même générées) . Le carrousel montre le résultat au terme de l’exécution du script. L’image d’origine suivi de sa version optimisée.

Pour aller plus loin

On pourra modifier les variables Powershell qui définissent les options de création des masques et des calques. Cela implique de connaitre un minimum la syntaxe d’imageMagick. Voici quelques liens pour bien débuter.

Test du zoom Sigma 20-35mm Gamma II

Sigma a réalisé plusieurs versions de ce zoom 21-35 mm. La première date de 1979, représentant alors le premier zoom grand angle au monde ! Je possède la seconde version (1985 ?). Elle se démarque par son mécanisme “one-touch” ou “push-pull” très rare sur un zoom grand angle. C’est la même bague qui permet à la fois la mise au point et le changement de focale.

Pour ce test, l’objectif est monté un sony A7 via une bague d’adaptation K&F .

Pour notre scène de test, direction la maison de Jean-Jacques Rousseau – “les Charmettes” – située sur les hauteurs de Chambéry.

J’ai fixé la mise au point en butée à l’infinie. Puis j’ai photographié la scène aux ouvertures 3.5, 5.6, 8, 11, 16 et 22 pour les focales 21, 24, 28 et 35 mm. J’ai ensuite crée un carrousel pour chaque focale en sélectionnant les 9 zones “critiques” de la scène . Un clic permet de faire défiler les images du  carrousel. On observe ainsi l’évolution des zones en fonction de l’ouverture.

Résultat à 21 mm

24 mm

28 mm

35 mm

En retournant l’appareil on peut voir que les ouvertures sont décalées pour la focale de 35 mm. Mais j’ai conservé pour ce test la première échelle , car c’est la seule repérée sur la bague des ouvertures.

Performance

Classiquement les bords progressent en fermant. Mais la diffraction touche fortement le centre de l’image à f16 et f22, et même dés f11 à partir de 28 mm. De 21 à 24 mm le meilleur résultat est obtenu à f11 avec seulement les 4 coins en retrait. Au delà de 24 mm f8 semble le bon compromis.

Au vu des résultats, on pourra utiliser l’ensemble de la plage focale sans arrière pensée. Je n’ai observer aucune lumière parasite, problème récurent lorsqu’on utilise un zoom via une bague d’adaptation. J’ai pu au contraire constater une assez bonne résistance au flare.

Utilisation

L’objectif est très agréable à utiliser. Son système “one-touch” permet une mise au point rapide que l’on contrôle facilement avec le focus-peaking du Sony. Inconvénient, lorsque l’objectif pointe vers le haut ou le bas, la focale “glisse”. C’est pénalisant lorsque l’appareil est sur trépied. Il faudra alors prévoir un adhésif pour bloquer la bague.

La qualité de fabrication est bonne. Le pare-soleil est en métal. Le caoutchouc de la bague map/changement de focale semble, malgré son âge, comme neuf.

Conclusion

Ce zoom ne rivalisera avec des focales fixes équivalentes en terme de performance. Les photos qu’il produit sont moins contrastées. Les extrémités de l’image sont moins définies. Mais il offre en revanche des possibilités de composition et cadrage bien supérieure. Sa focale 21 – 35 mm est adaptée à de nombreuses situations. Sa distance minimale de mise au point de 50 cm peut permettre d’isoler un premier plan.

Au final le sigma 21-35 Gamma II se démarque surtout par son ergonomie. Son système “one-touch” est unique sur un zoom grande angle. L’association au Sony a7 est fonctionnelle mais également harmonieuse. C’est un objectif que l’on aura plaisir à utiliser dans ce contexte . On peut le trouver assez facilement en occasion (selon la monture recherchée) et espérer l’acquérir pour moins de 100 euros avec son pare-soleil.

Voici quelques photos prises avec le zoom aux Charmettes. J’ai réglé la balance des blanc sur “lumière du jour”, le mode automatique donnant des images un peu trop froide à mon goût.

35 mm f4.2
35 mm f4.2

Une Delta 100 poussée à 400 iso

Utiliser une pellicule Ilford Delta 100 comme s’il s’agissait d’une pellicule 400 iso, en adaptant le temps de développement (révélateur XTOL). Le résultat en images …

Le contexte

J’utilise cette pellicule en format 120 sur un Pentacon Six. Je la développe habituellement avec un révélateur XTOL 1+1 pendant 8m30 avec 4 retournements toutes les 30 secondes. Quelques exemples :

Ces images ont été prises à Chambéry par une belle matinée ensoleillée (IL 14)

J’ai voulu utiliser la même pellicule sous un ciel très couvert en début de matinée (IL 11) . Je désirai conserver un grande profondeur de champs. 1/60s f11 pouvait servir de réglage de base. Pour un IL à 11, 1/60s f11 correspond à une sensibilité de 400 iso. Le temps de développement d’une pellicule Delta 100 doit donc être allongé. En adaptant la charte de developpement d’Ilford, j’ai choisit de passer à 11m 30 avec toujours 4 retournements toute les 30s.

Résultat sous un ciel couvert …

1/60s f11 Delta 100 à 400 iso
1/60s f11 Delta 100 à 400 iso

Le contraste est prononcé. Les ombres sont denses. Il reste de la matière dans les hautes lumières. Certaines images qui paraissaient fonctionner à la prise de vue posent problèmes :

1/60s f11 Delta 100 à 400 iso

Le contraste est ici beaucoup trop important . Il faut en tenir compte lors de la composition. L’image ci-dessous est mieux équilibrée.

1/60S f11 Delta 100 à 400 iso

Le retour du soleil !

Imprévu de taille, les conditions lumineuses changent brusquement (IL 14). Il suffit d’augmenter la vitesse me direz-vous. Mais au dessus de 1/60s mon Pentacon fait a peu près n’importe quoi . Il ne faut pas brusquer un grand-père ! Concrètement il me reste seulement la possibilité de fermer à f22 ou f16, ce qui représentera une surexposition de 1 ou 2 IL.

1/60s f22 Delta 100 à 400 iso
1/60s f16 Delta 100 à 400 iso

La dynamique est importante. Les hautes lumières restent contenus. Les images semblent avoir plus de tonus qu’un développement à 100 Iso. En ce qui concerne le grain, je n’observe aucune différence.

1/60 f16 Delta 100 à 400 iso
1/60s f16 Delta 100 à 400 iso

Conclusion

Ces résultats montrent que l’on peut pousser une pellicule Ilford Delta 100 à 400 iso sans crainte. Cela pourrait même être une nouvelle base pour l’utilisation du XTOL 1+1 à 20 degrés. Le temps de développement deviendra donc 11m30 avec 4 retournements toutes les 30 secondes. Dans ce cas, photographier à 400 iso sous forte lumière, pourrait nous amener surexposer. Nous avons vu que jusqu’à 2 IL c’est sans conséquence pour les hautes lumières .

Pour autant, lorsque la lumière est suffisante. la différence avec un développement classique est faible. Celui-ci produit des images un peu plus douce, ce qui peut être un avantage.

En conséquence pousser cette pellicule se justifie surtout lorsque la lumière est fade, la scène à photographier sans relief. Bien sur dans ce cas on peut prévoir d’utiliser une pellicule native à 400 iso. Mais au prix des pellicules faut-il multiplier les références ? Ai-je vraiment besoin de stocker des 400 iso ? Au vue des résultats lorsqu’on pousse une Delta 100, non.

Présentation de l’appareil photo ADOX Golf

L’ADOX Golf est un appareil photo argentique de type folding. Il a été fabriqué dans les années 50 en Allemagne. Il est aujourd’hui bon marché d’occasion. Mon exemplaire en très bon état ma couté 15 euros. C’est un bon compagnon pour s’initier au format carré (6×6).

Adox GolfAdox GolfAdox GolfAdox GolfAdox GolfAdox GolfAdox GolfAdox GolfAdox GolfAdox Golf
Ce que j’aime sur l’Adox Golf :
  • La fabrication et l’étui en cuir.
  • La qualité optique, tout a fait correcte.
  • L’obturateur discret.
  • La possibilité d’utiliser un déclencheur souple.
  • le système de chargement des pellicules.
Ce que j’aime moins :
  • La visée , un trou de souris !
  • La fenêtre inactinique pour l’avancement de la pellicule, très sombre.

Quelques photos réalisées avec l’appareil :

Chambéry sous une lumière matinale

Chambéry, fontaine des éléphants
Chambéry, theatre Charles Dullin
Ilford Delta 100 1/100s f11
Ilford Delta 100 1/100s f11

Test objectif : Marexar 35mm

J’ai acheté cet objectif en monture m42 sur le Bon Coin. Il accompagnait un boitier Yashica TL Electro. Le lot comprenait également un 85mm de la même marque. Le tout m’a couté 40 euros. Marexar était une marque d’objectif low cost. La fabrication est cependant de bonne qualité.

La scène utilisée pour le test.

J’ai réalisé ce test sur un sony A7 avec une bague d’adaptation K&F m42. Les réglages sur l’appareil sont neutres. La scène est peu contrastée ( ciel nuageux ) . Pour pouvoir comparer les photos, 9 zones ont été définies. Les flèches permettent de faire défiler les photos aux différentes ouvertures.

On note un assombrissement important des bords jusqu’à f5.6. Il faut attendre f8 pour avoir des coins corrects . L’ouverture la plus détaillée sur l’ensemble de l’image est f11. La diffraction n’altère pas le centre à cette ouverture. f16 et f22 reste utilisable.

J’ai voulu également tester la qualité du flou d’arrière plan . Avec une distance minimale de mise au point de 80 cm les possibilités sont limitées.

1/250 iso 100 f2.8
1/125 iso 100 f2.8

L’objectif produit rapidement du flare à contre-jour. Le manque de soleil ne m’a pas permis d’approfondir ces tests.

1/125 iso 100 f11

En conclusion ce Marexar 35mm f2.8 peut être intéressant en photos de paysage . A f11 il donnera de bon résultat, même si on risque de rencontrer des problèmes de flare. Pour d’autres usages le photographe sera pénalisé par la distance minimale de mise au point. Pour un 35mm il n’est pas très polyvalent.