Pourquoi ce portrait n'est-il pas pris à f / 29 net?

25

Je ne comprends pas pourquoi cette image n'est pas nette. Il s'agit d'un portrait photographié à F / 29 ISO100 1/250 avec un objectif 17-85 mm focalisé à 38 mm. La distance du sujet était de 1,2 m. Mon application DOF me dit que mon DOF aurait dû être d'environ 82,98 cm ou environ 1M.

Je suis confus quant à la raison pour laquelle cette image n'est pas aussi nette qu'elle devrait l'être. Pour cette capture d'écran, je l'ai agrandie à 200%. Est-ce beaucoup flou à 200% normal?

EDIT: Certaines personnes ont des questions sur le DOF dans cette photo, alors voici quelques informations qui peuvent être glanées à partir de n'importe quelle calculatrice DOF en ligne. Mon estimation de 82,8 cm provenait d'une application et 1,2 M de l'info EXIF, en utilisant cet outil en ligne , le DOF à F28 serait:

 Subject distance   1.2 m

 **Depth of field** 
 Near limit     0.84 m
 Far limit      2.13 m
 Total          1.29 m

 In front of subject        0.36 m  (28%)
 Behind subject             0.93 m  (72%)

 Hyperfocal distance         2.7 m
 Circle of confusion       0.019 mm

C'est également correct, car c'est à quelle distance j'étais réellement de la caméra - 1,2 m. Donc, pour que cette photo soit floue, je devrais être à environ un demi-mètre de la caméra, ce qui n'est pas ce dont je me souviens. Le flou observé sur cette photo n'est peut-être pas dû au fait que le sujet n'est pas net.

portrait F / 29 ISO100 1/250

MyStack corrompu
la source
6
la diffraction joue un rôle à cette ouverture
null
7
Certainement lié sinon tout à fait un double: Qu'est-ce qu'une «limite de diffraction»? .
Philip Kendall
1
L'objectif était-il focalisé à 38 mm ou 38 cm? mm semble peu probable.
mattdm
9
Nulle part dans votre description de vos paramètres, vous n'avez indiqué à quelle distance votre objectif était focalisé. Notez que cela n'a rien à voir avec la distance focale de votre objectif zoom. Vous avez peut-être eu l'objectif focalisé à l'infini pour tout ce que nous savons. OK, peut-être pas l'infini, mais tout simplement manquer de concentration est un candidat probable.
osullic
2
«Focalisé à» et «distance focale» sont deux concepts différents. Plus ici .
mattdm

Réponses:

48

Comme mentionné dans les autres réponses, la diffraction a conduit à une netteté. Pour mettre cela à l'épreuve, on peut essayer de rendre l'image plus nette en utilisant la déconvolution en utilisant la fonction d'étalement des points qui correspond à F / 29. Pour la diffraction, nous avons (jusqu'à une normalisation globale)

P (s) = {J 1rs / ( λF )] / [π rs / ( λF )]} 2

où J 1 est la fonction de Bessel du premier type d'ordre 1 ,
s est la distance dans l'image mesurée en pixels,
r est la taille d'un pixel (généralement environ 4,2 * 10 ^ (- 6) mètres pour les capteurs de récolte),
λ est la longueur d'onde de la lumière, et
F le nombre F, dans ce cas 29.

Cela est alors vrai pour la lumière monochromatique, pour approximer la fonction d'étalement des points pour les canaux de couleur, nous pouvons faire la moyenne sur une plage appropriée de longueurs d'onde. De plus, il faut intégrer P (s) sur la zone du pixel spécifiée par s.

Si nous compilons des fonctions d'étalement à 3 points pour les 3 canaux de couleur de cette façon, nous pouvons rendre l'image plus nette en la transformant en espace colorimétrique linéaire et en appliquant un algorithme de déconvolution puis en la transformant à nouveau en sRGB. J'ai obtenu le résultat suivant:

Image plus nette

Le visage a donc été nettement affiné en utilisant uniquement les données sur le nombre F et l'hypothèse sur la taille du pixel. Les artefacts de formation de bandes sont visibles dans la partie sombre de l'image, cela est dû à la postérisation après la reconversion en sRGB.

Comme demandé, j'ajouterai plus de détails sur les programmes utilisés. J'ai utilisé ImageJ et ImageMagick , j'ai également utilisé Mathematica pour calculer la fonction d'étalement des points, mais cela peut également être fait dans ImageJ. Je vais commencer par expliquer comment je fais la déconvolution avec ImageJ alors que j'ai déjà la fonction d'étalement de points. Pour faire la déconvolution, vous devez installer un plugin pour ImageJ, j'ai utilisé ce plugin pour ce cas, mais il existe également d'autres plugins disponibles, par exemple le plugin DeconvolutionLab .

Tout d'abord, vous devez convertir en espace colorimétrique linéaire, j'ai utilisé ImageMagick pour convertir l'image floue (input.jpg) en espace colorimétrique linéaire en utilisant la commande:

convert input.jpg -colorspace RGB output.tif

Puis avec ImageJ, vous ouvrez ensuite le fichier output.tif. Ensuite, dans les options du menu, vous sélectionnez "image" puis "couleur" puis "Spit Channels". Ensuite, dans le menu, sélectionnez "plugins" puis "déconvolution itérative parallèle" puis déconvolution interactive 2d ".

Vous obtenez alors la fenêtre de déconvolution, vous sélectionnez ensuite l'image et "PSF" signifie la fonction d'étalement du point, là vous sélectionnez le fichier image qui contient la fonction d'étalement du point. Pour la méthode, je choisis "WPL" qui est basé sur le filtre de Wiener, qui fonctionne généralement assez bien pour les images à faible bruit. Dans les options pour WPL, cochez la case "normaliser PSF", et pour le filtre passe-bas, changez la valeur à 0,2, par défaut c'est 1, mais une valeur inférieure est meilleure pour les images à faible bruit (si vous choisissez une taille plus grande, vous ' ll obtiendra une image moins nette). Les autres options, Limite peuvent être choisies pour être réflexives, le redimensionnement peut être réglé sur "puissance suivante de 2", la sortie peut être réglée sur 32 bits, la précision peut être réglée sur le double. J'ai choisi le nombre d'itérations maximum à 15,

Vous exécutez ensuite le programme en cliquant sur "déconvolver". Vous obtenez ensuite un fichier image 32 bits en sortie. Habituellement, les valeurs en pixels sont assez similaires à ce qu'elles étaient dans l'image d'origine, mais vous pouvez avoir des pixels qui dépassent le maximum pour le format d'image d'origine. Donc, dans ce cas, nous avons commencé avec des images 8 bits, mais dans l'image déconvolue, vous pouvez avoir des valeurs de gris qui dépassent 255, ce qui fait que l'image entière devient trop sombre. Cela doit être corrigé en écrêtant ces pixels à 255, ce que vous pouvez faire en sélectionnant dans le menu "processus" puis "Math" puis "Max". La valeur maximale sera ensuite utilisée pour découper les valeurs de gris qui dépassent cette valeur. Notez que cela se fera sur l'image sur laquelle vous avez cliqué pour la dernière fois. Vous pouvez également voir quel fichier est le "fichier actuel" en sélectionnant "

Ensuite, une fois que vous avez déconvolu les 3 composants de couleur, vous pouvez les combiner en sélectionnant dans le menu "image", puis "couleur" puis "Fusionner les canaux". Vous obtenez alors une image composite que vous pouvez convertir en RVB 8 bits en utilisant la commande "Empiler en RVB" que vous y trouverez.

Vous enregistrez ensuite cette image, appelons-la im.tif. Enfin, vous devez convertir ceci en sRGB, vous pouvez le faire avec ImageMagick en utilisant la commande:

convert im.tif -set colorspace RGB -colorspace sRGB output.tif

La question restante est alors de savoir comment obtenir la fonction d'étalement des points. En pratique, si vous aviez pris une photo comme celle discutée ici, vous auriez pu simplement prendre une photo d'une source ponctuelle, par exemple une étoile à F / 29 et l'utiliser comme fonction d'étalement de points. Alternativement, vous pouvez regarder les frontières à contraste élevé et extraire la fonction d'étalement des points de la façon dont les valeurs de gris changent d'une valeur à l'autre à travers la frontière. Mais alors vous essayez de rendre l'image plus nette que possible.

Dans ce cas, l'objectif était de compiler les fonctions d'étalement des points pour le canal de couleur en fonction de ce que vous attendez de F / 29, de déconvoluer l'image avec cela et de voir si le résultat semble suffisamment amélioré. J'ai utilisé Mathematica pour faire des calculs et pour lesquels un programme d'algèbre informatique avancé, il est assez facile de faire toutes sortes de manipulations, y compris la moyenne sur un intervalle de longueur d'onde et l'intégration sur des zones de pixels pour rendre le PSF plus réaliste.

Mais ImageJ vous permet également de créer une nouvelle image que vous pouvez utiliser comme fonction d'étalement des points. Si vous cliquez sur "Fichier" puis sur "Nouveau", vous pouvez créer une image 32 bits de taille, disons 64 par 64 remplie de noir. Vous pouvez ensuite programmer une formule pour les valeurs de gris en sélectionnant "processus", puis "Math" puis "Macro". Pour obtenir la fonction d'étalement de points pour ce cas qui implique la fonction de Bessel ici, vous pouvez utiliser le fait qu'elle est bien décrite par les premiers termes de l'expansion de la série. La page MathWorld à laquelle j'ai lié vous donne les extensions de cette série, donc, J 1 (x) 2 / x 2 avec x = π rs / ( λF ) peut être remplacé par une fonction de la forme A + B s 2 + C s 4. Cette approximation deviendra invalide si s est trop grand. Maintenant, nous savons que le PSF tend vers zéro, par exemple à une distance d'environ 5 ou 6 pixels, il peut être mis à zéro. En supposant que le polynôme est encore petit à ces valeurs, vous pouvez écrire la macro comme:

if(d<7) v = A + B  * pow(d,2) +  B * pow(d,4)

Vous créez ensuite 3 images pour, disons, lambda = 650 nm, 500 nm et 400 nm, ou toute autre valeur que vous jugez appropriée pour représenter la diffraction dans les 3 canaux de couleur. Vous pouvez ensuite faire la moyenne sur plusieurs longueurs d'onde différentes en créant des images pour différents lambda puis en sélectionnant "processus", puis "calculatrice d'image", et là vous sélectionnez "ajouter". Vous pouvez ensuite ajouter une autre image à ce résultat et lorsque vous avez terminé l'ajout, vous pouvez diviser pour obtenir la moyenne en sélectionnant "processus", puis "mathématiques" puis "diviser".

Comte Iblis
la source
C'est un peu étonnant. Je me demande combien de temps il faudra pour que les caméras intègrent cet arsenal de correction automatique et ce genre de chose est appliqué de façon systématique.
mattdm
2
+10 (ne peut pas vraiment faire +10 cependant) pour ajouter le calcul. C'est génial que vous l'ayez ajouté. Pouvez-vous donner une citation pour cela. Je veux l'essayer moi-même. Plus les calculs sont détaillés, plus on est de fous!
Corsted MyStack
C'est vraiment assez étonnant. Dans quel logiciel avez-vous fait cela? Cela semble être très utile pour la macro photographie.
Whelkaholism
@mattdm Deconvolution nécessite une certaine puissance de calcul, mais certains algorithmes comme la déconvolution Richardson-Lucy peuvent être plus facilement implémentés dans le matériel que d'autres. En outre, le logiciel de l'appareil photo utilisé pour traiter leurs fichiers bruts sur leurs ordinateurs pourrait inclure une déconvolution spécifiquement optimisée pour faire face au flou réel que vous obtenez en raison de la défocalisation et de la diffraction.
Count Iblis
1
@CorruptedMyStack Je vais ajouter plus de détails dans la réponse. Vous devriez pouvoir faire un bien meilleur travail si vous avez le fichier brut. Vous pouvez rechercher la taille du capteur et à partir de là calculer la taille des pixels. Mais vous pouvez également ignorer les calculs et mesurer directement la fonction d'étalement des points en prenant des photos d'un objet semblable à un point, puis en extraire simplement la fonction d'étalement des points. En cas de diffraction, la déconvolution est mieux effectuée avec les fichiers bruts, contrairement à dans d'autres cas, vous avez maintenant des franges de couleur qui ne devraient pas être corrigées avant que la déconvolution soit effectuée.
Count Iblis
51

Vous avez dépassé la limite de diffraction . Les rayons lumineux passant à travers un petit trou vont diverger et interférer les uns avec les autres et un modèle émerge - une sorte de bande où différentes fréquences / emplacements peuvent entraîner l'addition ou l'annulation de rayons distincts. Plus l'ouverture devient petite, plus cette divergence / interférence devient importante. Ce modèle est appelé un disque Airy. Lorsque le diamètre du pic du disque Airy devient plus grand que la taille d'un pixel et que les disques Airy pour chaque pixel commencent à fusionner, vous obtenez de la douceur - donc plus le nombre de pixels de votre capteur est élevé et plus votre capteur est petit, plus tôt vous le verrai en vous arrêtant.

Vous êtes généralement plus net à un «juste milieu». L'endroit où se trouve le «juste milieu» de votre équipement changera en fonction de la densité / taille des pixels et de la conception de l'objectif. Avec les capteurs de taille APS-C, que je détecte intelligemment que vous utilisez à partir de la référence d'objectif 17-85, vous ne voulez probablement pas dépasser f / 11 sans une très bonne raison et une volonté d'abandonner une certaine netteté. Les limites théoriques de diffraction seront probablement de l'ordre de f / 5,6-f / 8. Vous voudrez également savoir où se trouve le "point idéal" de votre objectif - de nombreux objectifs fonctionnent mieux à l'arrêt 1-2 arrêts à partir de la grande ouverture. Par exemple, le "point idéal" de l'EF 50 mm f / 1,8 II se situe dans la plage f / 4-5,6.

Je dirais également que juger de la netteté à un grossissement de 200% demande simplement que toutes vos lentilles ressemblent à de la viande de chien. Ce n'est pas un grossissement réaliste en termes de distances de visualisation que vous auriez sur une impression typique, et c'est un objectif rare qui résistera à ce genre de test, même lorsqu'il est utilisé à son point idéal. Arrêtez de regarder les pixels. Commencez à regarder l'impression.

Voir aussi: http://www.cambridgeincolour.com/tutorials/diffraction-photography.htm

inkista
la source
Ou, si vous jugez à quoi l’impression pourrait ressembler, alors: zoomez l’image de sorte qu’elle apparaisse à l’écran de la même taille que sur l’impression et regardez l’écran à peu près à la même distance que vous impression. Cela vous donnera une bien meilleure idée de ce à quoi ressemblera le résultat final, même si ce n'est pas une méthode parfaite. @CorruptedMyStack
un CVn le
15

En raison de la diffraction. f / 29, c'est trop pour vous attendre à une image nette. Essayez de photographier la même chose à f / 8 et vous verrez la différence.

K. Minkov
la source