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:
- Por canal suavidad. Si los vecinos más cercanos no son iguales, haga la transición sin problemas. Artefacto: sierras / cremalleras, suavidad
- Constancia de brillo con bordes dirigidos (dirección bilineal). Artefactos: muaré de textura de alta frecuencia, franjas de color
- Hue constancia. si en un vecindario el tono es el mismo, entonces, si un canal cambia, los otros tienen que seguirlo. Artefactos: cremalleras de color en los bordes de color
- La constancia se puede predecir a partir de los verdes. Artefacto: laberintos