¿Cómo se ve un archivo RAW sin procesar?

86

Sé que la gente usa sofisticados programas como Lightroom u Darktable para procesar posteriormente sus archivos RAW. ¿Pero y si no lo hago? ¿Cómo se ve el archivo, solo, ya sabes, RAW ?

mattdm
fuente
21
La matriz. Se parece a la matriz.
Hueco
2
Relacionado; ¿Los archivos RAW almacenan 3 colores por píxel, o solo uno? y ¿Por qué el rojo, el verde y el azul son los colores primarios de la luz? que explica cómo los sensores de las cámaras digitales minimizan la forma en que los ojos / cerebros perciben el color que, en cierto sentido, no existe de la forma en que a menudo suponemos que sí.
Michael C
3
@Hueco, una matriz de Bayer, tal vez.
Mark
He movido la discusión sobre la mejor manera de manejar esto como una pregunta canónica para chatear . Continuemos allí para que no tengamos ruido en los comentarios, cualquiera sea la decisión que termine siendo.
AJ Henderson
1
Lo que no se ve es la "imagen en bruto directamente fuera de la cámara" que muchas personas parecen pensar que tienen cuando abren un archivo de imagen en bruto en una aplicación de procesamiento en bruto. Esa es la base de esta pregunta.
Michael C

Respuestas:

185

Existe una herramienta llamada dcraw que lee varios tipos de archivos RAW y extrae datos de píxeles de ellos; en realidad, es el código original en la parte inferior de una gran cantidad de software de conversión RAW comercial e incluso de código abierto.

Tengo un archivo RAW de mi cámara, y he usado dcraw en un modo que le dice que cree una imagen usando valores de 16 bits literales y sin escala del archivo. Lo convertí a un JPEG de 8 bits para compartir, usando gamma perceptual (y reducido para cargar). Eso se ve así:

dcraw -E -4

Obviamente, el resultado es muy oscuro, aunque si hace clic para expandir, y si su monitor es decente, puede ver algo de algo .

Aquí está el JPEG en color fuera de cámara renderizado desde ese mismo archivo RAW:

JPEG fuera de cámara

(Crédito de la foto: mi hija usando mi cámara, por cierto).

No totalmente oscuro después de todo. Los detalles de dónde se esconden exactamente todos los datos están mejor cubiertos por una pregunta en profundidad , pero en resumen, necesitamos una curva que expanda los datos sobre el rango de sombras y luces disponibles en un JPEG de 8 bits en una pantalla típica .

Afortunadamente, el programa dcraw tiene otro modo que se convierte en una imagen más "útil" pero todavía apenas procesada. Esto ajusta el nivel del negro más oscuro y el blanco más brillante y cambia la escala de los datos adecuadamente. También puede establecer el balance de blancos automáticamente o desde la configuración de la cámara grabada en el archivo RAW, pero en este caso le he dicho que no lo haga , ya que queremos examinar el menor procesamiento posible.

Todavía hay una correspondencia uno a uno entre las fotosites en el sensor y los píxeles en la salida (aunque de nuevo lo he reducido para subirlo). Eso se ve así:

dcraw -d -r 1 1 1 1

Ahora, esto es obviamente más reconocible como una imagen, pero si nos acercamos a esto (aquí, por lo que cada píxel se amplía 10 ×), vemos que todo es ... dotty:

10 × zoom y recorte

Esto se debe a que el sensor está cubierto por una matriz de filtros de color : pequeños filtros de colores del tamaño de cada fotosita. Debido a que mi cámara es una cámara Fujifilm, esta utiliza un patrón que Fujifilm llama "X-Trans", que se ve así:

10 × xtrans

Hay algunos detalles sobre el patrón particular que son interesantes, pero en general no es muy importante. La mayoría de las cámaras actuales usan algo llamado patrón de Bayer (que se repite cada 2 × 2 en lugar de 6 × 6). Ambos patrones tienen más sitios de filtro verde que los rojos o azules. El ojo humano es más sensible a la luz en ese rango, por lo que usar más píxeles para eso permite más detalles con menos ruido.

En el ejemplo anterior, la sección central es un parche de cielo, que es una sombra de cian, en RGB, que es mucho azul y verde sin mucho rojo. Entonces, los puntos oscuros son los sitios de filtro rojo: son oscuros porque esa área no tiene tanta luz en las longitudes de onda que atraviesan ese filtro. La franja diagonal en la esquina superior derecha es una hoja verde oscura, por lo que si bien todo está un poco oscuro, puede ver que el verde, los bloques más grandes de 2 × 2 con este patrón de sensor, son relativamente los más brillantes en esa área.

Entonces, de todos modos, aquí hay una sección 1: 1 (cuando hace clic para obtener la versión completa, un píxel en la imagen será un píxel en la pantalla) de la sección JPEG fuera de la cámara:

Recorte de vista 1: 1 de imagen fuera de cámara

... y aquí está la misma área de la conversión de escala de grises rápida anterior. Puede ver el punteado del patrón X-Trans:

Recorte 1: 1 de la versión dcraw -d -r 1 1 1 1

De hecho, podemos tomar eso y colorear los píxeles para que los que corresponden al verde en la matriz se asignen a niveles de verde en lugar de gris, rojo a rojo y azul a azul. Eso nos da:

1: 1 con coloración xtrans

... o, para la imagen completa:

imagen completa de dcraw -d -r 1 1 1 1 con colorización xtrans

El tono verde es muy evidente, lo que no es sorprendente porque hay 2½ × más píxeles verdes que rojos o azules. Cada bloque de 3 × 3 tiene dos píxeles rojos, dos píxeles azules y cinco píxeles verdes. Para contrarrestar esto, hice un programa de escala muy simple que convierte cada uno de esos bloques de 3 × 3 en un solo píxel. En ese píxel, el canal verde es el promedio de los cinco píxeles verdes, y los canales rojo y azul el promedio de los dos píxeles rojos y azules correspondientes. Eso nos da:

xtrans colorized, ingenua demostración de bloques ingenuos

... que en realidad no es tan malo. El balance de blancos está apagado, pero como decidí intencionalmente no ajustarme a eso, esto no es una sorpresa. Al presionar "balance de blancos automático" en un programa de imágenes se compensa eso (como habría permitido que dcraw lo configurara en primer lugar):

xtrans coloreado, demostración ingenua de bloques ingenuos + niveles automáticos

Los detalles no son excelentes en comparación con los algoritmos más sofisticados que se usan en las cámaras y los programas de procesamiento RAW, pero claramente lo básico está ahí. Mejores enfoques crean imágenes a todo color al ponderar los diferentes valores alrededor de cada píxel en lugar de ir por bloques grandes. Dado que el color generalmente cambia gradualmente en las fotografías, esto funciona bastante bien y produce imágenes donde la imagen es a todo color sin reducir las dimensiones en píxeles. También hay trucos ingeniosos para reducir los artefactos de borde, el ruido y otros problemas. Este proceso se llama "demosaicing", porque el patrón de los filtros de colores parece un mosaico de mosaicos.

Supongo que esta vista (donde realmente no tomé ninguna decisión, y el programa no hizo nada automáticamente inteligente) podría haberse definido como la "apariencia predeterminada estándar" del archivo RAW, terminando así muchos argumentos de Internet. Pero, no existe tal estándar, no existe una regla tal que esta interpretación "ingenua" particular sea especial.

Y, este no es el único punto de partida posible. Todos los programas de procesamiento RAW del mundo real tienen sus propias ideas de un estado predeterminado básico para aplicar a un archivo RAW nuevo en carga. Tienen que hacer algo (de lo contrario, tendríamos esa cosa oscura e inútil en la parte superior de esta publicación), y generalmente hacen algo más inteligente que mi simple conversión manual, lo cual tiene sentido, porque de todos modos eso te da mejores resultados.

mattdm
fuente
44
Hermosa foto Y gran respuesta.
Marc.2377
10

Es una cuadrícula de números realmente muy grande. Todo lo demás está procesando.

WolfgangGroiss
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
AJ Henderson
7

Sé que Mattdm ya ha respondido bastante bien, pero pensé que este artículo podría resultarle interesante:

Genética de datos: cómo funcionan las cámaras digitales

En caso de que el enlace se caiga, aquí hay un resumen:

El ojo humano es más sensible a los colores en la región de longitud de onda verde (coincidente con el hecho de que nuestro sol emite más intensamente en la región verde).

El ojo de la cámara (dispositivo de carga acoplada (CCD) o semiconductor de óxido metálico complementario (CMOS)) es sensible solo a la intensidad de la luz, no al color.

Los filtros ópticos se utilizan para filtrar diferentes longitudes de onda de luz. Por ejemplo, un filtro de paso verde solo dejará pasar la luz verde.

Los filtros ópticos utilizados en las cámaras digitales son del tamaño de los sensores de píxeles individuales y están dispuestos en una cuadrícula para que coincida con la matriz de sensores. Se utilizan filtros rojo, verde y azul (algo así como nuestras celdas de cono). Sin embargo, debido a que nuestros ojos son más sensibles al verde, el filtro de matriz Bayer tiene 2 filtros de píxeles verdes para cada píxel rojo y azul. La matriz de Bayer tiene filtros verdes que forman un patrón tipo tablero de ajedrez, mientras que los filtros rojo y azul ocupan filas alternas.

Volviendo a su pregunta original: ¿cómo se ve un archivo RAW sin procesar?

Parece una red a cuadros negra y blanca de la imagen original.

El sofisticado software para el procesamiento posterior de los archivos RAW primero aplica el filtro Bayer. Se parece más a la imagen real después de esto, con color en la intensidad y ubicaciones correctas. Sin embargo, todavía hay artefactos de la cuadrícula RGB del filtro Bayer, porque cada píxel es de un solo color.

Hay una variedad de métodos para suavizar el archivo RAW codificado por color. Sin embargo, suavizar los píxeles es similar al desenfoque, por lo que demasiado suavizado puede ser algo malo.

Aquí se describen brevemente algunos de los métodos de demostración:

Vecino más cercano: el valor de un píxel (color único) se aplica a sus otros vecinos coloreados y los colores se combinan. No se crean colores "nuevos" en este proceso, solo colores que fueron originalmente percibidos por el sensor de la cámara.

Interpolación lineal: por ejemplo, promedia los dos valores azules adyacentes y aplica el valor azul promedio al píxel verde entre los píxeles azules adyacentes. Esto puede desenfocar los bordes afilados.

Interpolación cuadrática y cúbica: similar a la interpolación lineal, aproximaciones de orden superior para el color intermedio. Usan más puntos de datos para generar mejores ajustes. lineal solo mira dos, cuadrático a tres y cúbico a cuatro para generar un color intermedio.

Catmull-Rom Splines: similar a cúbico, pero tiene en cuenta el gradiente de cada punto para generar el color intermedio.

Medio coseno: usado como ejemplo de un método de interpolación, crea medios cosenos entre cada par de colores similares y tiene una curva inflexión suave entre ellos. Sin embargo, como se señala en el artículo, no ofrece ninguna ventaja para las matrices Bayer debido a la disposición de los colores. Es equivalente a la interpolación lineal pero a un costo computacional más alto.

El software de posprocesamiento de gama más alta tiene mejores métodos de demostración y algoritmos inteligentes. Por ejemplo, pueden identificar bordes afilados o cambios de alto contraste y preservar su nitidez al combinar los canales de color.

jreese
fuente
-6

Creo que mucha gente imagina que los archivos sin formato son simplemente una matriz de valores de píxeles directamente del sensor de la cámara. Hay casos en que este es realmente el caso, y debe proporcionar cierta información sobre el sensor para que el software interprete la imagen. Pero muchas de las cámaras de los consumidores suelen proporcionar "archivos sin formato" que en realidad se ajustan más o menos a la especificación del archivo TIFF (en algunos casos, los colores pueden estar apagados). Uno puede intentar simplemente cambiando la extensión del archivo a ".tif" y ver qué sucede al abrir el archivo. Creo que algunos de ustedes verán una buena imagen, pero no todos, porque hay diferencias entre cómo los diferentes camerabrands resuelven esto.

Un archivo TIFF en lugar de un "archivo sin procesar real" es una buena solución. Un archivo TIFF puede tener 16 bits por color. Eso es suficiente para todas las cámaras que conozco.

Ed: Me pregunto por qué esta respuesta fue rechazada. La respuesta es esencialmente correcta (con reserva para el hecho de que los fabricantes de cámaras no tienen que usar estructuras TIFF, pero muchas de ellas lo hacen).

Sobre la parte de la matriz de píxeles directamente del sensor, no es ridículo esperar algo así. Porque así es como funcionan muchos sensores fuera del mercado de cámaras de consumo. En estos casos, debe proporcionar un archivo separado que describa el sensor.

Por cierto, la palabra "RAW" se usa porque debería significar que obtenemos los datos del sensor no procesados. Pero es razonable que los fabricantes de cámaras usen un formato estructurado en lugar de archivos sin formato de verdad. De esta manera, el fotógrafo no tiene que conocer los datos exactos del sensor.

Ulf Tennfors
fuente
2
Yo he tenido aplicaciones de recuperación de archivos que "recuperar" los archivos .CR2 como archivos TIFF. Esos archivos no se abrirían con ninguna aplicación que pueda funcionar con TIFF. Cambiar las extensiones de archivo nuevamente a .cr2 los hizo perfectamente utilizables .cr2.
Michael C
55
Eso no quiere decir que los archivos RAW a menudo no usen realmente contenedores de formato TIFF, eso es absolutamente correcto. Es solo que lo que estás viendo probablemente no son los datos "RAW" en el sentido que estoy buscando.
mattdm
2
Ok, para aclarar, el archivo usa estructuras del formato de archivo TIFF. Pero como no hace exactamente lo que dice la especificación TIFF, no es un archivo TIFF estricto. Pero el punto es que una biblioteca TIFF podría usarse para leer el archivo. Uno no tiene que hacer todo desde cero para leer ese archivo.
Ulf Tennfors
55
Nadie con ningún sentido esperaría que un archivo RAW fuera datos directamente del sensor sin metadatos de ningún tipo, como tiempo, información de la cámara, etc. El hecho de que los formatos tipo TIFF sean útiles para estructurar los datos no es realmente importante, ni disminuye el principio conceptual de que los datos están "directamente" fuera del sensor sin procesamiento posterior.
cuál es
3
TIFF es un contenedor, no un formato de imagen. puede almacenar datos en TIFF y aún así tener datos sin procesar del sensor en lugar de una imagen que cualquier persona sin conocimiento específico de la cámara podría usar.
THS