¿Por qué no se toma este retrato en f / 29 en punto?


25

Estoy confundido sobre por qué esta imagen no es nítida. Esta es una foto vertical en F / 29 ISO100 1/250 con una lente de 17-85 mm enfocada a 38 mm. La distancia del sujeto fue de 1.2M. Mi aplicación DOF me dice que mi DOF debería haber sido ~ 82.98cm o aproximadamente 1M.

Estoy confundido sobre por qué esta imagen no es tan nítida como debería ser. Para esta captura de pantalla, la he ampliado al 200%. ¿Esto es tan borroso al 200% normal?

EDITAR: Algunas personas tienen preguntas sobre el DOF en esta toma, por lo que aquí hay información que se puede obtener de cualquier calculadora de DOF en línea. Mi estimación de 82.8cm era de una aplicación y 1.2M era de la información EXIF, usando esta herramienta en línea , el DOF en F28 sería:

 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

Esto también es correcto porque así de lejos estaba realmente de la cámara: 1.2M. Entonces, para que esta toma esté desenfocada, tendría que estar a medio metro de la cámara, que no es lo que recuerdo. Posiblemente el desenfoque observado en esta foto no se deba a que el sujeto esté desenfocado.

retrato F / 29 ISO100 1/250


66
la difracción juega un papel en esta apertura
nulo

77
Definitivamente relacionado si no es un duplicado: ¿Qué es un "límite de difracción"? .
Philip Kendall

1
¿Estaba la lente enfocada a 38 mm o 38 cm? mm parece poco probable.
mattdm

99
En ninguna parte de su descripción de su configuración ha dicho a qué distancia estaba enfocada su lente. Tenga en cuenta que esto no tiene nada que ver con la distancia focal en la que se configuró su lente de zoom. Es posible que haya tenido la lente enfocada al infinito por lo que sabemos. De acuerdo, tal vez no sea infinito, pero simplemente perder el enfoque es un candidato probable.
osullic

2
"Centrado en" y "distancia focal" son dos conceptos diferentes. Más aquí .
mattdm

Respuestas:


48

Como se menciona en las otras respuestas, la difracción ha llevado a la falta de nitidez. Para poner esto a prueba, uno puede intentar enfocar la imagen usando la deconvolución usando la función de dispersión de puntos que corresponde a F / 29. Para difracción, tenemos (hasta una normalización general)

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

donde J 1 es la función de Bessel del primer tipo de orden 1 ,
s es la distancia en la imagen medida en píxeles,
r es el tamaño de un píxel (normalmente unos 4,2 * 10 ^ (- 6) metros para sensores de recorte),
λ es la longitud de onda de la luz, y
F el número F, en este caso 29.

Esto es cierto para la luz monocromática, para aproximar la función de dispersión de puntos para los canales de color que podemos promediar en un rango apropiado de longitudes de onda. Además, uno debe integrar P (s) sobre el área del píxel especificado por s.

Si compilamos funciones de dispersión de 3 puntos para los 3 canales de color de esta manera, podemos enfocar la imagen transformándola en un espacio de color lineal y aplicando un algoritmo de deconvolución y luego transformándolo nuevamente a sRGB. Obtuve el siguiente resultado:

Cuadro afilado

Por lo tanto, la cara se ha agudizado significativamente utilizando solo los datos sobre el número F y la suposición sobre el tamaño del píxel. Los artefactos de bandas son visibles en la parte oscura de la imagen, esto se debe a la posterización después de volver a transformarse en sRGB.

Según lo solicitado, agregaré algunos detalles más sobre los programas utilizados. Solía ImageJ y ImageMagick , que también utilizan Mathematica para el cálculo de la función de dispersión, pero también se puede hacer dentro ImageJ. Comenzaré explicando cómo hago la deconvolución con ImageJ cuando ya tengo la función de dispersión de puntos. Para realizar la deconvolución, debe instalar un complemento para ImageJ. Utilicé este complemento para este caso, pero también hay otros complementos disponibles, por ejemplo, el complemento DeconvolutionLab .

Primero, necesita convertir al espacio de colores lineal, utilicé ImageMagick para convertir la imagen de enfoque (input.jpg) a un espacio de colores lineal usando el comando:

convert input.jpg -colorspace RGB output.tif

Luego, con ImageJ, abre el archivo output.tif. Luego, desde las opciones del menú, selecciona "imagen", luego "color" y luego "Canales de escupir". Luego, desde el menú, seleccione "complementos" y luego "deconvolución iterativa paralela" y luego 2d deconvolución interactiva ".

Luego obtiene la ventana de deconvolución, luego selecciona la imagen y "PSF" significa la función de dispersión de puntos, allí selecciona el archivo de imagen que contiene la función de dispersión de puntos. Para el método, elijo "WPL", que se basa en el filtro Wiener, que generalmente funciona razonablemente bien para imágenes de bajo ruido. En las opciones para WPL, marque "normalizar PSF", y para el filtro de paso bajo cambie el valor a 0.2, por defecto es 1, pero un valor más bajo es mejor para imágenes con poco ruido (si lo elige más grande, ' obtendrá una imagen que sea menos nítida). Las otras opciones, Boundary se pueden elegir para que sean reflexivas, el cambio de tamaño se puede configurar a "la próxima potencia de 2", la salida se puede configurar a 32 bits, la precisión se puede configurar al doble. Elegí el número máximo de iteraciones para ser 15,

Luego ejecuta el programa haciendo clic en "deconvolucionar". Luego obtienes un archivo de imagen de 32 bits como salida. Por lo general, los valores de píxeles son bastante similares a los de la imagen original, pero puede tener algunos píxeles que exceden el máximo para el formato de imagen original. Entonces, en este caso, comenzamos con imágenes de 8 bits, pero en la imagen deconvolucionada, puede tener valores de gris que exceden 255, lo que hace que toda la imagen se vuelva demasiado oscura. Esto debe solucionarse recortando estos píxeles a 255, lo que puede hacer seleccionando en el menú "proceso" y luego "Matemáticas" y luego "Máx.". El valor máximo se utilizará para recortar los valores grises que excedan ese valor. Tenga en cuenta que esto se hará con la imagen en la que hizo clic por última vez. También puede ver qué archivo es el "archivo actual" seleccionando "

Luego, una vez que haya desconvolucionado los 3 componentes de color, puede combinarlos seleccionando en el menú "imagen", luego "color" y luego "Combinar canales". Luego obtienes una imagen compuesta que puedes convertir a RGB de 8 bits usando el comando "Apilar a RGB" que encuentras allí.

Luego guarda esa imagen, llamémosla im.tif. Finalmente, debe convertir esto a sRGB, puede hacerlo con ImageMagick usando el comando:

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

La pregunta restante es cómo obtener la función de dispersión de puntos. En la práctica, si hubiera tomado una foto como la que se está discutiendo aquí, simplemente podría haber tomado una foto de una fuente puntual, por ejemplo, una estrella en F / 29 y utilizarla como su función de dispersión puntual. Alternativamente, puede mirar los límites de alto contraste y extraer la función de dispersión de puntos de la forma en que los valores grises cambian de un valor a otro a través del límite. Pero entonces estás tratando de enfocar la imagen lo mejor que puedes.

En este caso, el objetivo era compilar las funciones de dispersión de puntos para el canal de color en función de lo que cabría esperar de F / 29, deconvolver la imagen con eso y ver si el resultado parece haber mejorado lo suficiente. Utilicé Mathematica para hacer algunos cálculos y, como un programa de álgebra computacional tan avanzado, es bastante fácil hacer todo tipo de manipulaciones, incluido el promedio sobre un intervalo de longitud de onda y la integración sobre áreas de píxeles para hacer que el PSF sea más realista.

Pero ImageJ también le permite crear una nueva imagen que puede usar como función de dispersión de puntos. Si hace clic en "Archivo" y luego en "Nuevo", puede crear una imagen de tamaño de 32 bits, digamos, 64 por 64 llena de negro. Luego puede programar una fórmula para los valores grises seleccionando "proceso", luego "Matemáticas" y luego "Macro". Para obtener la función de dispersión de puntos para este caso que involucra la función de Bessel aquí, puede usar el hecho de que está bien descrito por los primeros términos de la expansión de la serie. La página de MathWorld con la que me vinculé le ofrece expansiones de esta serie, por lo que J 1 (x) 2 / x 2 con x = π rs / ( λF ) puede reemplazarse por una función de la forma A + B s 2 + C s 4. Esta aproximación será inválida si s es demasiado grande. Ahora, sabemos que el PSF tiende a cero, por ejemplo, a una distancia de aproximadamente 5 o 6 píxeles se puede establecer en cero. Suponiendo que el polinomio sigue siendo pequeño en estos valores, puede escribir la Macro como:

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

Luego crea 3 imágenes para, por ejemplo, lambda = 650 nm, 500 nm y 400 nm, o cualquier otro valor que considere apropiado para representar la difracción en los 3 canales de color. A continuación, puede hacer el promedio sobre algunas longitudes de onda diferentes creando imágenes para diferentes lambda y luego seleccionando "proceso", luego "calculadora de imagen", y allí selecciona "agregar". Luego puede agregar otra imagen a este resultado y cuando termine de agregar, puede dividir para obtener el promedio seleccionando "proceso", luego "matemáticas" y luego "dividir".


Eso es un poco asombroso. Me pregunto cuánto tiempo pasará hasta que las cámaras tengan esto incorporado en su arsenal de corrección automática y este tipo de cosas se apliquen como algo natural.
mattdm

2
+10 (aunque realmente no puede hacer +10) para agregar las matemáticas. Es genial que lo hayas añadido. ¿Puedes dar alguna cita para esto? Quiero probar esto yo mismo. ¡Cuanto más detalladas sean las matemáticas, mejor!
MyStack dañado

Eso es realmente asombroso. ¿En qué software hiciste esto? Parece que podría ser increíblemente útil para la fotografía macro.
Whelkaholism

La desconvolución @mattdm requiere bastante potencia computacional, pero algunos algoritmos como la deconvolución Richardson-Lucy pueden implementarse más fácilmente en el hardware que otros. Además, el software de la cámara que se usa para procesar sus archivos en bruto en sus computadoras podría incluir la desconvolución que está específicamente optimizada para lidiar con el desenfoque real que se obtiene debido al desenfoque y la difracción.
Conde Iblis

1
@CorruptedMyStack Agregaré algunos detalles más en la respuesta. Debería poder hacer un trabajo mucho mejor si tiene el archivo sin formato. Puede buscar el tamaño del sensor y a partir de eso calcular el tamaño del píxel. Pero también puede omitir los cálculos y medir directamente la función de dispersión de puntos al tomar imágenes de algún punto como objeto y luego simplemente extraer la función de dispersión de puntos a partir de eso. En caso de difracción, la deconvolución se realiza mejor con los archivos sin formato, a diferencia de otros casos, ahora tiene franjas de color que no deben corregirse antes de llevar a cabo la deconvolución.
Conde Iblis

51

Has superado el límite de difracción . Los rayos de luz que pasan a través de un pequeño orificio divergirán e interferirán entre sí y emergerá un patrón, una especie de banda donde las diferentes frecuencias / ubicaciones pueden hacer que los rayos separados se sumen o se nieguen entre sí. Cuanto más pequeña es la abertura, mayor es esta divergencia / interferencia. Este patrón se llama disco de Airy. Cuando el diámetro del pico del disco Airy se hace más grande que el tamaño de un píxel y los discos Airy para cada píxel comienzan a fusionarse, obtienes suavidad, por lo que cuanto mayor sea el recuento de píxeles de tu sensor y más pequeño sea tu sensor, más pronto Lo veré cuando te detengas.

Generalmente eres más agudo en un "medio feliz". La ubicación del "medio feliz" de su equipo cambiará según la densidad / tamaño de píxeles y el diseño de la lente. Con los sensores de tamaño APS-C, que ingeniosamente detecto que está utilizando de la referencia de lente 17-85, es probable que no quiera pasar por f / 11 sin una buena razón y una buena disposición para renunciar a cierta nitidez. Los límites teóricos de difracción probablemente estarán en el rango f / 5.6-f / 8. También querrá saber dónde está el "punto óptimo" de su lente: muchas lentes funcionan mejor si se detienen 1-2 paradas desde la apertura total. Por ejemplo, el "punto óptimo" del EF 50 mm f / 1.8 II está en el rango f / 4-5.6.

También diría que juzgar la nitidez con un aumento del 200% es solo pedir que todas sus lentes se vean como carne de perro. Esa no es una ampliación realista en términos de distancias de visualización que tendría de una impresión típica, y es una lente rara que resistirá ese tipo de prueba, incluso cuando se usa en su punto óptimo. Deja de espiar píxeles. Comienza a mirar la impresión.

Ver también: http://www.cambridgeincolour.com/tutorials/diffraction-photography.htm


O, si está juzgando cómo se vería la impresión, entonces: amplíe la imagen de modo que aparezca en la pantalla aproximadamente del mismo tamaño que en la impresión, y mire la pantalla desde la misma distancia que lo haría impresión. Eso te dará una idea mucho mejor de cómo se verá el resultado final, aunque ese no sea un método perfecto. @CorruptedMyStack
un CVn

15

Por difracción. f / 29 es demasiado para esperar una imagen nítida. Intenta disparar lo mismo en f / 8 y verás la diferencia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.