Primitivas de Filtro de Color

Dos primitivas de Filtro permiten la manipulación de colores.

Matriz de Colores

La primitiva de filtro Matriz de Colores convierte cada uno de los valores de los parámetros de color RGB y Alfa en otros valores. La transformación de estos valores está definida mediante una matriz 5 × 5. Los valores de la fila inferior de esta matriz son fijos, por lo tanto, la transformación está realmente definida por una matriz 5 × 4. La quinta columna de la matriz añade a la transformación un valor que es independiente de los parámetros RGB y Alfa, lo que permite una corrección no lineal del color.

Fórmula de la Matriz.

Esta primitiva tiene definidos cuatro tipos de transformación, tres de los cuales son realmente casos especiales del primer tipo.

  • Matriz: Toda la matriz 5 × 4 está definida. Este es el caso de la transformación más general.
  • Saturar: La saturación del color se reduce mediante el valor de un parámetro, s. El rango de posibles valores que puede tomar s va desde 0.0 (color con saturación nula) hasta 1.0 (el color no sufre ningún cambio). Este tipo de transformación solo afecta a los valores de los parámetros RGB del color. La fórmula exacta de esta transformación es:
    • R' = (0.213 + 0.787s)R + 0.715 × (1 − s)G + 0.072 × (1 − s)B;
    • G' = 0.213 × (1 − s)R + (0.715 + 0.285s)G + 0.072 × (1 − s)B;
    • B' = 0.213 × (1 − s)R + 0.715 × (1 − s)G + (0.072 + 0.928s)B.
  • Rotar tono: El tono del color se modifica especificando el valor de un parámetro angular. Este tipo de transformación, como la Saturar, solo afecta a los valores de los parámetros RGB del color. La fórmula exacta de esta transformación es bastante complicada. No consiste en una simple rotación de tonos del rojo al amarillo, del amarillo al verde, y así sucesivamente.
  • Luminiscencia a alfa: La claridad (luminancia) del color se convierte en Alfa a través de una fórmula fija: Alfa = 0.2125 × R + 0.7154 × G + 0.0721 × B (según la ITU-R Recommendation BT709, el estándar de color HDTV).
Primitiva Matriz de Colores.
Ejemplos de aplicación de la primitiva de filtro Matriz de Colores. De arriba a abajo: Objeto original al que se ha aplicado la primitiva. En el modo Matriz definido para intercambiar entre sí el rojo y el azul. En el modo Saturar con un valor s = 0.5. En el modo Rotar tono con un valor de 90°. En el modo Luminiscencia a alfa.

Con esta primitiva se puede conseguir un negativo del objeto inicial asignando a los elementos RGB de la diagonal de la matriz (a00, a11, a22) el valor −1.00, y a los tres elementos superiores de la quinta columna de la matriz (a04, a14, a24) el valor 1.00.

Imagen negativa.
Ejemplo de un negativo creado aplicando la primitiva Matriz de Colores en el modo Matriz

Transferencia de Componentes

Parcialmente implementada. No disponible en la interfaz gráfica del programa.

La primitiva de filtro Transferencia de Componentes modifica los parámetros RGB y Alfa de un objeto aplicando funciones independientes a cada uno de los valores de entrada de dichos parámetros. Dispone de los siguientes modos para definir las funciones: Identidad, Tabla, Discreto, Lineal y Gamma.