Demosaicing (o de-mosaicing , demosaicking ), también conocido como reconstrucción de color , es un algoritmo de procesamiento de imágenes digitales que se utiliza para reconstruir una imagen a todo color a partir de muestras de color incompletas generadas por un sensor de imagen superpuesto con una matriz de filtros de color (CFA), como un filtro Bayer . También se conoce como interpolación CFA o debayering .
La mayoría de las cámaras digitales modernas adquieren imágenes utilizando un único sensor de imagen superpuesto con un CFA, por lo que la demostración es parte del proceso de procesamiento necesario para representar estas imágenes en un formato visible.
Muchas cámaras digitales modernas pueden guardar imágenes en formato sin formato, lo que permite al usuario realizar una demostración mediante software, en lugar de utilizar el firmware integrado de la cámara .
El objetivo de un algoritmo de demostración es reconstruir una imagen a todo color (es decir, un conjunto completo de tripletas de color) a partir de los canales de color espacialmente submuestreados emitidos por el CFA. El algoritmo debe tener las siguientes características:
Una matriz de filtros de color es un mosaico de filtros de color frente al sensor de imagen. Comercialmente, la configuración CFA más utilizada es el filtro Bayer que se ilustra aquí. Tiene filtros alternos rojo (R) y verde (G) para filas impares y filtros alternos verde (G) y azul (B) para filas pares. Hay el doble de filtros verdes que rojos o azules, lo que satisface la mayor sensibilidad del ojo humano a la luz verde.
Dado que el submuestreo de color de un CFA por su naturaleza produce aliasing , generalmente se coloca un filtro óptico antialiasing en la ruta óptica entre el sensor de imagen y la lente para reducir los artefactos de color falso (alias cromáticos) introducidos por la interpolación. [1]
Dado que cada píxel del sensor está detrás de un filtro de color, la salida es una matriz de valores de píxeles, cada uno de los cuales indica una intensidad bruta de uno de los tres colores del filtro. Por lo tanto, se necesita un algoritmo para estimar para cada píxel los niveles de color de todos los componentes de color, en lugar de uno solo.
Para reconstruir una imagen a todo color a partir de los datos recopilados por la matriz de filtrado de color, se necesita una forma de interpolación para completar los espacios en blanco. Las matemáticas aquí están sujetas a implementación individual y se denominan demosaicing.
En este ejemplo, utilizamos la interpolación bicúbica de Adobe Photoshop para simular el circuito de un dispositivo de filtro Bayer, como una cámara digital .
La siguiente imagen simula la salida de un sensor de imagen filtrada de Bayer; cada píxel tiene sólo un componente rojo, verde o azul. La imagen original correspondiente se muestra junto con la reconstrucción en mosaico al final de esta sección.
Una cámara digital normalmente tiene medios para reconstruir una imagen RGB completa utilizando la información anterior. La imagen resultante podría ser algo como esto:
La imagen reconstruida suele ser precisa en áreas de color uniforme, pero tiene una pérdida de resolución (detalle y nitidez) y tiene artefactos en los bordes (por ejemplo, los bordes de las letras tienen franjas de color visibles y algo de rugosidad).
Estos algoritmos son ejemplos de interpolación multivariada en una cuadrícula uniforme, que utilizan operaciones matemáticas relativamente sencillas en instancias cercanas del mismo componente de color. El método más sencillo es la interpolación del vecino más cercano , que simplemente copia un píxel adyacente del mismo canal de color. No es adecuado para ninguna aplicación en la que la calidad importe, pero puede resultar útil para generar vistas previas con recursos computacionales limitados. Otro método simple es la interpolación bilineal , mediante la cual el valor rojo de un píxel no rojo se calcula como el promedio de los dos o cuatro píxeles rojos adyacentes, y de manera similar para el azul y el verde. Los métodos más complejos que interpolan de forma independiente dentro de cada plano de color incluyen la interpolación bicúbica , la interpolación spline y el remuestreo de Lanczos .
Aunque estos métodos pueden obtener buenos resultados en regiones de imagen homogéneas, son propensos a producir graves artefactos de mosaico en regiones con bordes y detalles cuando se utilizan con CFA de color puro. [2] Sin embargo, la interpolación lineal puede obtener muy buenos resultados cuando se combina con un CFA espacio-espectral (pancromático). [3] Se podrían explotar modelos de formación simples de imágenes para realizar demostraciones. En imágenes naturales dentro del mismo segmento, se debe preservar la proporción de colores. Este hecho se aprovechó en una interpolación sensible a la imagen para realizar demostraciones.[4]
Algoritmos de demostración más sofisticados explotan la correlación espacial y/o espectral de píxeles dentro de una imagen en color. [5] La correlación espacial es la tendencia de los píxeles a asumir valores de color similares dentro de una pequeña región homogénea de una imagen. La correlación espectral es la dependencia entre los valores de píxeles de diferentes planos de color en una región de imagen pequeña.
Estos algoritmos incluyen:
Se ha demostrado que la superresolución y la demostración en mosaico son dos caras del mismo problema y es razonable abordarlas en un contexto unificado. [10] Tenga en cuenta que ambos problemas enfrentan el problema del alias. Por lo tanto, especialmente en el caso de la reconstrucción de vídeo (multicuadros), un enfoque conjunto de superresolución y demostración proporciona la solución óptima.
Algunos métodos pueden producir mejores resultados para escenas naturales y otros para material impreso, por ejemplo. Esto refleja el problema inherente de estimar píxeles que no se conocen definitivamente. Naturalmente, también existe el omnipresente equilibrio entre velocidad y calidad de la estimación.
Cuando uno tiene acceso a los datos de imagen sin procesar de una cámara digital, puede usar software de computadora con una variedad de algoritmos de demostración diferentes en lugar de limitarse al integrado en la cámara. Algunos programas de desarrollo sin formato, como RawTherapee y darktable , brindan al usuario la opción de elegir qué algoritmo debe usarse. Sin embargo, la mayoría de los programas están codificados para utilizar un método particular. Las diferencias en la representación de los detalles más finos (y la textura de grano) que surgen de la elección del algoritmo de demostración se encuentran entre las principales diferencias entre varios desarrolladores sin formato; A menudo los fotógrafos preferirán un programa particular por razones estéticas relacionadas con este efecto.
Los artefactos de color debidos al mosaico proporcionan pistas importantes para identificar fotografías falsificadas. [11]