Los sensores de Bayer usan un patrón de píxeles rojos, verdes y azules, y los combinan en una imagen de color final, con un píxel por cada sensor de color . Esto podría hacerse a través de una combinación "ingenua" de sensores vecinos, pero he oído hablar de enfoques más complicados con nombres como AHD, HPHD y AMaZE.
¿Cuáles son estos otros enfoques y qué ventajas aportan? ¿Tienen debilidades más allá de la complejidad informática?
Me imagino que el enfoque utilizado para JPEG en la cámara es más estricto, pero claramente se necesita mucha investigación y desarrollo en esta área. ¿La potencia de procesamiento limitada disponible en la cámara fuerza algún compromiso en esta área?
Respuestas:
Hace unos meses me sorprendió descubrir que mi SDK de cámara de visión artificial utilizaba la "interpolación" vecina más cercana en su función bayer incorporada. Es el tipo más rápido, pero el peor, da bordes duros, especialmente cuando comienza a hacer cálculos matemáticos en los canales de imagen para la constancia del color o la invariancia del brillo. Encontré esta revisión de algoritmos:
http://www.arl.army.mil/arlreports/2010/ARL-TR-5061.pdf
El siguiente paso son las interpolaciones bilineales y bicúbicas, que pueden calcularse bastante rápido porque equivalen solo a núcleos de convolución. Estos dan dientes de sierra de colores en los bordes inclinados, bilineales más que bicúbicos.
Puede verse en este documento y con datos de calidad cuantificados en 5 algoritmos diferentes:
http://research.microsoft.com/en-us/um/people/lhe/papers/icassp04.demosaicing.pdf
Es por eso que hicieron interpolaciones basadas en la dirección del borde. Sin embargo, estos tratan al verde como un "canal más importante" (ya que tiene la mejor resolución y explica la mayor parte de nuestra sensibilidad visual y la resolución de nuestros ojos). Y luego crean azul y rojo en función del canal verde, de una manera que preserva el tono. Esto a su vez hace que el contenido de alta frecuencia del canal verde sea más propenso a errores. La complejidad es mayor ya que tienen que detectar lo que está sucediendo y requieren múltiples pases. El muaré y el maíz son artefactos comunes de este tipo de interpolación.
Aquí muestran ejemplos de versiones adaptativas de homogeneidad de la homogeneidad y bilineales con y sin complementos de preservación de tono y preservación de bordes:
http://math.auburn.edu/~kilgota/ahd_bayer.pdf
Ese documento favorece a AHD y no muestra la parte negativa. En esta página puede ver los diferentes artefactos de patrones de Demosaicing adaptativo de homogeneidad, Agrupación de píxeles con patrones y Número variable de gradientes (pase el mouse sobre los nombres):
http://www.ruevski.com/rawhistogram/40D_Demosaicing/40D_DemosaicingArtifacts.html
En resumen, hay una serie de supuestos empleados en estos algoritmos, y los artefactos ocurren cuando el supuesto no se cumple:
fuente
Empecé a jugar un poco con esto y descubrí que el enfoque ingenuo no es tan malo. Eso es simplemente tratar cada color por separado e interpolar para obtener el entre píxeles. El principal inconveniente de esto es que si estás mirando píxeles en un lugar donde hay un alto contraste, puedes ver un poco de franjas de color. Dicho de otra manera, si tiene un área gris claro que linda con un área negra, verá unos pocos píxeles de colores en el límite. Afortunadamente, estos promedian en general, pero si el borde es casi vertical o casi horizontal, promedian en una frecuencia baja. El mismo efecto puede ser aún más obvio en líneas finas y brillantes que son casi verticales u horizontales.
Aquí hay un ejemplo. Esta foto fue tomada deliberadamente como una foto de prueba:
Tenga en cuenta las bandas aparentes de la línea de acabado cromado. Para poner esto en perspectiva, aquí está el cuadro completo:
He pensado en un enfoque alternativo, pero hasta ahora siempre ha habido otras cosas que hacer primero. Este esquema buscaría encontrar solo el brillo primero. Este sería el canal único de datos de imagen si la imagen fuera en blanco y negro. Cada sensor contribuye un poco a eso, aunque los colores no contribuyen por igual. Una vez que se determina la intensidad, debe interpolar los colores como en el método ingenuo, pero usar el resultado solo para establecer los colores de tal manera que se conserve la intensidad. La intensidad tendría un mayor ancho de banda o sería más nítida en términos fotográficos que la información del tono. La televisión analógica utilizó este truco para reducir los requisitos de ancho de banda de una imagen en color. Se salieron con la suya porque el sistema visual humano le da mayor importancia a la intensidad que los colores, particularmente el rojo.
De todos modos, esos son solo algunos pensamientos. Como dije, en realidad aún no lo he intentado ni he trabajado en los detalles. Algún día.
fuente
Tengo entendido que las diferentes versiones de proceso en Lightroom (hasta ahora tenemos 2003, 2010 y 2012) corresponden, entre otras cosas, a diferentes algoritmos de demostración. Otro software interesante es UFRaw que ofrece lo siguiente (cita de la página web):
Después de establecer el balance de blancos, UFRaw interpola el patrón Bayer.
Esto podría proporcionar algo de material para experimentar. Por cierto, UFRaw parece ser de código abierto, lo que le permite echar un vistazo a los algoritmos mismos.
fuente
En astrofotografía, este tema se investiga profundamente, porque cuando se usa un sensor de color de una sola toma, se pierde mucha resolución por desbarbado. Por el lado positivo, el uso de un archivo RAW aún obtiene acceso a los datos originales y puede procesarse antes de la aplicación de color. Este tema se aleja mucho del lado del software.
En resumen, si tiene acceso a muchas imágenes con los mismos datos de sujeto (que es algo que se hace para reducir el ruido del sensor), puede cambiar una conversión de un solo cuadro con AHD por un enfoque de llovizna que puede recuperar la resolución perdida. La elección depende del tipo de datos de origen que tenga disponibles. La mayoría de los fotógrafos solo tienen una sola imagen para usar.
Algunos software que he usado con opciones para los procesos de Debayering son: Deep Sky Stacker y Pix Insight. Hay otros también. Muchos se basan en DCRAW .
Aquí está el enlace para el artículo en la página de Deep Sky Stacker donde discuten algunas de las opciones: Opciones de Debayering
fuente