Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Conversiones de espacio de color basadas en perfiles

Si dos colores tienen la misma colorimetría CIE, coincidirán con .si se ve en las mismas condiciones Sin embargo, debido a que las imágenes en color se producen normalmente para una amplia variedad de entornos de visualización, es necesario ir más allá de la simple aplicación del sistema CIE.

Por esta razón, el International Color Consortium (ICC) ha definido un sistema de gestión de color (CMS) que proporciona un medio para comunicar información de color entre los dispositivos de entrada, salida y visualización. El CMS utiliza el dispositivo que contiene la información de color específica de un dispositivo determinado.Perfiles Los proveedores que admiten CMS proporcionan perfiles que caracterizan la reproducción de color de sus dispositivos, y métodos, llamados Módulos de Gestión de Color (CMM), que interpretan el contenido de cada perfil y realizan el procesamiento de imágenes necesario.

Los perfiles de dispositivo contienen la información que los sistemas de gestión de color necesitan para traducir datos de color entre dispositivos. Cualquier conversión entre espacios de color es una transformación matemática de algún espacio de dominio a un espacio de rango. Con las conversiones basadas en perfiles, el espacio de dominio a menudo se denomina y el espacio de rango se denomina .espacio fuenteespacio de destino En el modelo de gestión de color ICC, los perfiles se utilizan para representar los espacios de origen y destino.

Para obtener más información sobre los sistemas de gestión del color, vaya al sitio web del Consorcio Internacional del Color, http://www.color.org.

Leer perfiles ICC

Para leer un perfil ICC en el espacio de trabajo, utilice la función.iccread En este ejemplo, la función lee en el perfil para el espacio de color que describe los monitores de color.

P = iccread('sRGB.icm');

Puede utilizar la función para buscar perfiles de color ICC en el sistema o para buscar un perfil de color ICC determinado cuya descripción contenga una cadena de texto determinada.iccfind Para obtener el nombre del directorio que es el repositorio del sistema predeterminado para perfiles ICC, utilice .iccroot

devuelve el contenido del perfil en la estructura.iccreadP Todos los perfiles contienen un encabezado, una tabla de etiquetas y una serie de elementos etiquetados. El encabezado contiene información general sobre el perfil, como la clase de dispositivo, el espacio de color del dispositivo y el tamaño del archivo. Los elementos etiquetados, o etiquetas, son las construcciones de datos que contienen la información utilizada por la MMC. Para obtener más información sobre el contenido de esta estructura, consulte la página de referencia de la función.iccread

Usando , puede leer los formatos de perfil ICC de la versión 2 (ICC.1:2001-04) o de la versión 4 (ICC.1:2001-12).iccread Para obtener información detallada sobre estas especificaciones y sus diferencias, visite el sitio web de la CPI, http://www.color.org.

Escribir información de perfil ICC en un archivo

Para exportar información de perfil ICC desde el espacio de trabajo a un archivo, utilice la función.iccwrite En este ejemplo se lee un perfil en el área de trabajo y, a continuación, se escribe la información del perfil en un archivo nuevo.

P = iccread('sRGB.icm'); P_new = iccwrite(P,'my_profile.icm');

devuelve el perfil en el que escribe porque puede ser diferente del perfil de entrada.iccwriteP_newP Por ejemplo, actualiza el campo para que coincida con el nombre del archivo especificado como segundo argumento.iccwriteFilenameP

Cuando crea el archivo de salida, comprueba la validez de la estructura del perfil de entrada.iccwrite Si faltan campos obligatorios, devuelve un mensaje de error.iccwrite Para obtener más información sobre la escritura de datos de perfil ICC en un archivo, consulte la página de referencia de la función.iccwrite Para determinar si una estructura es un perfil ICC válido, utilice la función.isicc

Usando , puede exportar información de perfil en formatos de perfil ICC de la versión 2 (ICC.1:2001-04) o de la versión 4 (ICC.1:2001-12).iccwrite El valor del campo en el encabezado del perfil de archivo determina la versión de formato.Version Para obtener información detallada sobre estas especificaciones y sus diferencias, visite el sitio web de la CPI, http://www.color.org.

Convertir RGB a CMYK usando perfiles ICC

En este ejemplo se muestra cómo convertir datos de color del espacio de color RGB utilizado por un monitor al espacio de color CMYK utilizado por una impresora. Esta conversión requiere dos perfiles: un perfil de monitor y un perfil de impresora. El espacio de color de origen en este ejemplo es monitor RGB y el espacio de color de destino es la impresora CMYK:

Importar datos de espacio de color RGB. En este ejemplo se importa una imagen de color RGB en el espacio de trabajo.

I_rgb = imread('peppers.png');

Lea los perfiles ICC. Lea los perfiles de origen y destino en el área de trabajo. En este ejemplo se utiliza el perfil sRGB como perfil de origen. El perfil sRGB es un espacio de color estándar de la industria que describe un monitor de color.

inprof = iccread('sRGB.icm');

Para el perfil de destino, el ejemplo utiliza un perfil que describe una impresora de color determinada. El proveedor de la impresora suministra este perfil. (El siguiente perfil y varios otros perfiles útiles se pueden obtener como descargas de .)www.adobe.com

outprof = iccread('USSheetfedCoated.icc');

Cree una estructura de transformación de color. Debe crear una estructura de transformación de color para definir la conversión entre los espacios de color de los perfiles. La función se utiliza para crear la estructura, especificando una cadena de tipo de transformación como argumento.makecform En este ejemplo se crea una estructura de transformación de color que define una conversión de datos de color RGB a datos de color CMYK. La conversión de espacio de color puede implicar una conversión intermedia en un espacio de color independiente del dispositivo, denominado espacio de conexión de perfil (PCS), pero esto es transparente para el usuario.

C = makecform('icc',inprof,outprof);

Realice la conversión. Utilice la función para realizar la conversión, especificando como argumentos los datos de color que desea convertir y la estructura de transformación de color que define la conversión.applycform La función devuelve los datos convertidos.

I_cmyk = applycform(I_rgb,C);

Escriba los datos convertidos en un archivo. Para exportar los datos CMYK, utilice la función, especificando el formato como TIFF.imwrite Si el formato es TIFF y los datos son una matriz m-by-n-by-4, escribe datos CMYK en el archivo.imwrite

imwrite(I_cmyk,'pep_cmyk.tif','tif')

Para comprobar que los datos CMYK se han escrito en el archivo, utilice para obtener información sobre el archivo y examine el campo.imfinfoPhotometricInterpretation

info = imfinfo('pep_cmyk.tif'); info.PhotometricInterpretation 
ans =    'CMYK'

¿Qué es la intención de representación en las conversiones basadas en perfiles?

Para la mayoría de los dispositivos, la gama de colores reproducibles es mucho menor que la gama de colores representada por el PCS. Es por esta razón que cuatro intenciones de representación (o técnicas de asignación de gama) se definen en el formato de perfil. Cada uno tiene claras compensaciones estéticas y de precisión de color.

Al crear una estructura de transformación de color basada en perfiles, puede especificar la intención de representación para el origen, así como los perfiles de destino. Para obtener más información, consulte la información de referencia.makecform