Perché questo ritratto non è stato scattato con nitidezza af / 29?


25

Sono confuso sul perché questa immagine non sia nitida. Questo è un ritratto a F / 29 ISO100 1/250 con un obiettivo 17-85 mm messo a fuoco a 38 mm. La distanza del soggetto era 1,2 M. La mia app DOF mi dice che il mio DOF avrebbe dovuto essere ~ 82,98 cm o circa 1 m.

Sono confuso sul perché questa immagine non sia così nitida come dovrebbe essere. Per questo screenshot, l'ho ingrandito al 200%. È così sfocato normale al 200%?

EDIT: Alcune persone hanno domande sul DOF in questo scatto, quindi ecco alcune informazioni che possono essere raccolte da qualsiasi calcolatore DOF online. La mia stima di 82,8 cm proveniva da un'app e 1,2 M era dalle informazioni EXIF, usando questo strumento online , il DOF su F28 sarebbe:

 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

Questo è anche corretto perché è quanto lontano ero effettivamente dalla fotocamera - 1.2M. Quindi, poiché questo scatto è sfocato, dovrei essere a circa mezzo metro di distanza dalla fotocamera, il che non è ciò che ricordo. Forse la sfocatura osservata in questa foto non è dovuta alla sfocatura del soggetto.

ritratto F / 29 ISO100 1/250


6
la diffrazione gioca un ruolo in questa apertura
null

7
Decisamente correlato se non del tutto duplicato: che cos'è un "limite di diffrazione"? .
Philip Kendall,

1
L'obiettivo era messo a fuoco a 38 mm o 38 cm? mm sembra improbabile.
Mattdm,

9
In nessun punto della descrizione delle impostazioni hai detto a quale distanza il tuo obiettivo era focalizzato. Nota che ciò non ha nulla a che fare con la lunghezza focale su cui è stato impostato l'obiettivo zoom. Potresti aver messo a fuoco l'obiettivo all'infinito per quello che sappiamo. OK, forse non l'infinito, ma semplicemente perdere la messa a fuoco è un probabile candidato.
osullic

2
"Focused at" e "focale" sono due concetti diversi. Più qui .
Mattdm,

Risposte:


48

Come menzionato nelle altre risposte, la diffrazione ha portato alla non nitidezza. Per metterlo alla prova, si può tentare di affinare l'immagine usando la deconvoluzione usando la funzione di diffusione del punto che corrisponde a F / 29. Per diffrazione, abbiamo (fino a una normalizzazione complessiva)

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

dove J 1 è la funzione di Bessel del primo tipo di ordine 1 ,
s è la distanza nell'immagine misurata in pixel,
r è la dimensione di un pixel (in genere circa 4,2 * 10 ^ (- 6) metri per i sensori di coltura),
λ è la lunghezza d'onda della luce, e
F il numero F, in questo caso 29.

Questo è quindi vero per la luce monocromatica, per approssimare la funzione di diffusione del punto per i canali di colore che possiamo valutare su un intervallo appropriato di lunghezze d'onda. Inoltre, si dovrebbero integrare P (s) sull'area del pixel specificato da s.

Se compiliamo funzioni di diffusione a 3 punti per i 3 canali di colore in questo modo, possiamo rendere più nitida l'immagine trasformandola in uno spazio cromatico lineare e applicando un algoritmo di deconvoluzione e poi ritornando a sRGB. Ho ottenuto il seguente risultato:

Foto nitida

Quindi la faccia è stata notevolmente migliorata usando solo i dati sul numero F e il presupposto sulla dimensione del pixel. Gli artefatti delle bande sono visibili nella parte scura dell'immagine, ciò è dovuto alla posterizzazione dopo la trasformazione in sRGB.

Come richiesto, aggiungerò ulteriori dettagli sui programmi utilizzati. Ho usato ImageJ e ImageMagick , ho anche usato Mathematica per calcolare la funzione di diffusione dei punti, ma può essere eseguita anche in ImageJ. Inizierò spiegando come faccio la deconvoluzione con ImageJ quando ho già la funzione di diffusione dei punti. Per eseguire la deconvoluzione, è necessario installare un plug-in per ImageJ, in questo caso ho utilizzato questo plug- in, ma sono disponibili anche altri plug-in, ad esempio il plug-in DeconvolutionLab .

Innanzitutto, devi convertire in spazio colore lineare, ho usato ImageMagick per convertire l'immagine di contrasto (input.jpg) in spazio colore lineare usando il comando:

convert input.jpg -colorspace RGB output.tif

Quindi con ImageJ, apri il file output.tif. Quindi, dalle opzioni di menu, selezionare "immagine", quindi "colore" e quindi "Canali di sputo". Quindi dal menu selezionare "plug-in" e poi "deconvoluzione iterativa parallela" e poi deconvoluzione interattiva 2d ".

Si ottiene quindi la finestra di deconvoluzione, quindi si seleziona l'immagine e "PSF" indica la fucntion di diffusione del punto, lì si seleziona il file di immagine che contiene la funzione di diffusione del punto. Per il metodo, ho scelto "WPL" che si basa sul filtro Wiener, che di solito funziona abbastanza bene per le immagini a basso rumore. Nelle opzioni per WPL, seleziona "normalizza PSF" e, per il filtro passa-basso, modifica il valore su 0,2, per impostazione predefinita è 1, ma un valore inferiore è migliore per le immagini a basso rumore (se lo scegli più grande, Otterrò un'immagine meno nitida). Le altre opzioni, Boundary possono essere scelte per essere riflessive, il ridimensionamento può essere impostato su "potenza successiva di 2", l'output può essere impostato su 32 bit, la precisione può essere impostata sul doppio. Ho scelto il numero di numero massimo di iterazioni su 15,

Quindi eseguire il programma facendo clic su "deconvolve". Quindi si ottiene un file di immagine a 32 bit come output. Di solito, i valori dei pixel sono abbastanza simili a quelli che erano nell'immagine originale, ma puoi avere alcuni pixel che superano il massimo per il formato dell'immagine originale. Quindi, in questo caso abbiamo iniziato con immagini a 8 bit, ma nell'immagine deconvolta, puoi avere valori di grigio che superano 255 che quindi rendono l'intera immagine troppo scura. Questo deve essere risolto ritagliando questi pixel a 255, cosa che puoi fare selezionando nel menu "process" e poi "Math" e poi "Max". Il valore massimo verrà quindi utilizzato per tagliare i valori di grigio che superano quel valore. Nota che questo sarà fatto all'immagine su cui hai cliccato l'ultima volta. Puoi anche vedere quale file è il "file corrente" selezionando "

Quindi, una volta deconvolti i 3 componenti del colore, è possibile combinarli selezionando nel menu "immagine", quindi "colore" e quindi "Unisci canali". Quindi ottieni un'immagine composita che puoi convertire in RGB a 8 bit usando il comando "Stack to RGB" che trovi lì.

Quindi salvi quell'immagine, chiamiamola im.tif. Infine, devi convertirlo in sRGB, puoi farlo con ImageMagick usando il comando:

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

La domanda rimanente è quindi come ottenere la funzione di diffusione dei punti. In pratica, se avessi scattato una foto come quella in discussione qui, avresti semplicemente potuto scattare una foto di una sorgente puntiforme, ad esempio una stella in F / 29 e usarla come funzione di diffusione punti. In alternativa, è possibile osservare i limiti di contrasto elevato ed estrarre la funzione di diffusione dei punti dal modo in cui i valori di grigio cambiano da un valore all'altro attraverso il confine. Ma poi stai cercando di affinare l'immagine nel miglior modo possibile.

In questo caso l'obiettivo era quello di compilare le funzioni di diffusione dei punti per il canale di colore in base a ciò che ci si aspetterebbe da F / 29, deconvolgere l'immagine con quello e vedere se il risultato sembra migliorato abbastanza bene. Ho usato Mathematica per fare alcuni calcoli e quale programma di algebra al computer così avanzato è abbastanza facile fare tutti i tipi di manipolazioni tra cui la media su un intervallo di lunghezze d'onda e l'integrazione su aree di pixel per rendere il PSF più realistico.

Ma ImageJ ti consente anche di creare una nuova immagine che puoi usare come funzione di diffusione del punto. Se fai clic su "File" e poi su "Nuovo" puoi creare un'immagine a 32 bit di dimensioni, diciamo 64 per 64 riempite di nero. È quindi possibile programmare una formula per i valori di grigio selezionando "process", quindi "Math" e quindi "Macro". Per ottenere la funzione di diffusione dei punti per questo caso che coinvolge la funzione di Bessel qui, è possibile utilizzare il fatto che è ben descritta dai primi termini dell'espansione della serie. La pagina MathWorld a cui ho collegato ti offre le espansioni di questa serie, quindi J 1 (x) 2 / x 2 con x = π rs / ( λF ) può essere sostituito da una funzione del modulo A + B s 2 + C s 4. Questa approssimazione diventerà non valida se s è troppo grande. Ora sappiamo che il PSF tende a zero, ad esempio a una distanza di circa 5 o 6 pixel, può essere impostato su zero. Supponendo che il polinomio sia ancora piccolo con questi valori, è possibile scrivere la Macro come:

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

Quindi crei 3 immagini per, diciamo, lambda = 650 nm, 500 nm e 400 nm, o qualsiasi altro valore che ritieni appropriato per rappresentare la diffrazione nei 3 canali di colore. È quindi possibile eseguire la media su alcune lunghezze d'onda diverse creando immagini per lambda diverse e quindi selezionando "processo", quindi "calcolatrice di immagini" e lì selezionare "Aggiungi". Puoi quindi aggiungere un'altra immagine a questo risultato e quando hai finito di aggiungere, puoi dividere per ottenere la media selezionando "process", quindi "matematica" e quindi "divide".


È incredibile. Mi chiedo quanto tempo ci vorrà prima che le telecamere abbiano questo integrato nel loro arsenale di correzione automatica e questo genere di cose viene applicato come una cosa ovvia.
Mattdm,

2
+10 (non posso davvero fare +10 però) per aggiungere la matematica. È fantastico che tu l'abbia aggiunto. Puoi dare qualche citazione per questo. Voglio provare questo da solo. Più la matematica è dettagliata, più è bello!
Corrotto MyStack il

È davvero sorprendente. In quale software hai fatto questo? Sembra che potrebbe essere incredibilmente utile per la fotografia macro.
Whelkaholism,

@mattdm La deconvoluzione richiede una certa potenza computazionale, ma alcuni algoritmi come la deconvoluzione di Richardson-Lucy possono essere implementati più facilmente nell'hardware rispetto ad altri. Inoltre, il software della fotocamera utilizzato per elaborare i file non elaborati sui propri computer potrebbe includere la deconvoluzione che è specificamente ottimizzata per gestire la sfocatura effettiva che si ottiene a causa di sfocatura e diffrazione.
Conte Iblis il

1
@CorruptedMyStack Aggiungerò altri dettagli nella risposta. Dovresti essere in grado di fare un lavoro molto migliore se hai il file raw. È possibile cercare le dimensioni del sensore e quindi calcolare la dimensione dei pixel. Ma puoi anche saltare i calcoli e misurare direttamente la funzione di diffusione del punto scattando foto di un punto come un oggetto e quindi estrarre da essa la funzione di diffusione del punto. In caso di diffrazione, la deconvoluzione viene eseguita meglio con i file non elaborati, a differenza di altri casi ora si hanno frange di colore che non dovrebbero essere corrette prima che venga eseguita la deconvoluzione.
Conte Iblis il

51

Hai superato il limite di diffrazione . I raggi di luce che passano attraverso un piccolo foro divergeranno e interferiranno l'uno con l'altro ed emergerà uno schema: una sorta di banding in cui frequenze / posizionamenti diversi possono far sì che i raggi separati si sommino o si annullino a vicenda. Più piccola diventa l'apertura, maggiore diventa questa divergenza / interferenza. Questo modello è chiamato disco Airy. Quando il diametro del picco del disco di Airy diventa più grande della dimensione di un pixel e i dischi di Airy per ciascun pixel iniziano a fondersi, si ottiene morbidezza, quindi maggiore è il numero di pixel del sensore e più piccolo è il sensore, prima si lo vedrai mentre ti fermi.

In genere sei più nitido in un "mezzo felice". La posizione del "mezzo felice" della tua attrezzatura cambierà in base alla densità / dimensione dei pixel e al design dell'obiettivo. Con i sensori di dimensioni APS-C, che rilevo abilmente che stai usando dal riferimento dell'obiettivo 17-85, probabilmente non vorrai andare oltre f / 11 senza una ragione davvero buona e la volontà di rinunciare a un po 'di nitidezza. I limiti teorici di diffrazione saranno probabilmente nell'intervallo f / 5.6-f / 8. Dovresti anche scoprire dove si trova il "punto debole" del tuo obiettivo: molti obiettivi funzionano meglio fermati a 1-2 stop da tutta apertura. Ad esempio, il "punto ottimale" dell'EF 50mm f / 1.8 II è compreso nell'intervallo f / 4-5.6.

Direi anche che giudicare la nitidezza con un ingrandimento del 200% sta solo chiedendo a tutti i tuoi obiettivi di sembrare carne di cane. Questo non è un ingrandimento realistico in termini di distanze di visualizzazione che avresti da una stampa tipica, ed è un obiettivo raro che resisterà a quel tipo di test, anche se usato nel suo punto debole. Smetti di sbirciare i pixel. Inizia a guardare la stampa.

Vedi anche: http://www.cambridgeincolour.com/tutorials/diffraction-photography.htm


Oppure, se stai giudicando come potrebbe apparire la stampa, allora: ingrandisci l'immagine in modo che appaia sullo schermo delle stesse dimensioni della stampa, e guarda lo schermo da circa la stessa distanza che avresti stampare. Questo ti darà un'idea molto migliore di come sarà il risultato finale, anche se non è un metodo perfetto. @CorruptedMyStack
un CVn

15

A causa della diffrazione. f / 29 è troppo per te aspettarti un'immagine nitida. Prova a scattare la stessa cosa su f / 8 e vedrai la differenza.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.