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.

Tipos de imágenes

Imágenes indexadas

Una imagen indexada consiste en una matriz de datos, X, y una matriz colores, map. map es una matriz m-by-3 de clase double que contiene valores de coma flotante en el intervalo [0,1]. Cada fila de map especifica los componentes rojo, verde y azul de un solo color. Una imagen indexada utiliza la "asignación directa" de los valores de píxel a los valores colores. El color de cada píxel de imagen se determina utilizando el valor correspondiente de X como un índice en map. Por tanto, los valores de X deben ser enteros. El valor 1 apunta a la primera fila en map, el valor 2 apunta a la segunda fila, y así sucesivamente. Mostrar una imagen indexada con las instrucciones

image(X); colormap(map) 

A menudo, un colores se almacena con una imagen indexada y se carga automáticamente con la imagen cuando se utiliza la función imread . Sin embargo, no se limita a utilizar el colores predeterminado: utilice cualquier colores que elija. La descripción de la propiedad CDataMapping describe cómo modificar el tipo de asignación utilizada.

La siguiente figura ilustra la estructura de una imagen indizada. Los píxeles de la imagen están representados por números enteros, que son punteros (índices) a los valores de color almacenados en el colores.

La relación entre los valores de la matriz de imagen y el colores depende de la clase de la matriz de imagen. Si la matriz de imagen es de clase double, el valor 1 apunta a la primera fila en el colores, el valor 2 apunta a la segunda fila, y así sucesivamente. Si la matriz de imagen es de clase uint8 o uint16, hay un desvío — el valor 0 apunta a la primera fila en el colores, el valor 1 apunta a la segunda fila, y así sucesivamente. El desvío también se utiliza en formatos de archivo gráficos para maximizar el número de colores que se pueden soportar. En la imagen anterior, la matriz de imagen es de clase double. Como no hay desvío, el valor 5 apunta a la quinta fila del colores.

Nota

Cuando utilice el renderizador de pintores en la plataforma Windows® , sólo debe usar 256 colores cuando intente mostrar una imagen indexada. Un colormaps más grande puede llevar a colores inesperados porque el algoritmo de los pintores utiliza la paleta de color de Windows 256, que los controladores gráficos y hardware de gráficos se saben para manejar diferentemente. Para evitar este problema, utilice el renderizador Zbuffer o OpenGL , según corresponda.

Imágenes de intensidad

Una imagen de intensidad es una matriz de datos, I, cuyos valores representan intensidades dentro de algún rango. Una imagen de intensidad se representa como una única matriz, con cada elemento de la matriz correspondiente a un píxel de imagen. La matriz puede ser de clase double, uint8, o uint16. Si bien las imágenes de intensidad rara vez se guardan con un colores, todavía se utiliza un colores para mostrarlos. En esencia, las imágenes de intensidad se tratan como imágenes indizadas.

Esta figura representa una imagen de intensidad de la clase double.

Para mostrar una imagen de intensidad, utilice la función imagesc ("escala de imagen"), que le permite establecer el rango de valores de intensidad. imagesc escala los datos de la imagen para utilizar el colores completo. Utilice el formulario de dos entradas de imagesc para mostrar una imagen de intensidad, por ejemplo:

imagesc(I,[0 1]); colormap(gray); 

El segundo argumento de entrada a imagesc especifica el rango de intensidad deseado. La función imagesc muestra I mediante la asignación del primer valor del intervalo (normalmente 0) a la primera entrada colores, y el segundo valor (normalmente 1) a la última entrada colores. Los valores intermedios se distribuyen linealmente a lo largo de los colores colores restantes.

Aunque es convencional para mostrar imágenes de intensidad utilizando un colores en escala de grises, es posible utilizar otros colormaps. Por ejemplo, las siguientes instrucciones muestran la intensidad de la imagen I en tonos de azul y verde:

imagesc(I,[0 1]); colormap(winter);

Para mostrar una matriz A con un rango arbitrario de valores como una imagen de intensidad, utilice el formulario de argumento único de imagesc. Con un argumento de entrada, imagesc asigna el valor mínimo de la matriz de datos a la primera entrada colores, y asigna el valor máximo a la última entrada colores. Por ejemplo, estas dos líneas son equivalentes:

imagesc(A); colormap(gray) imagesc(A,[min(A(:)) max(A(:))]); colormap(gray)

Imágenes RGB (truecolor)

Una imagen RGB, a veces denominada imagen Truecolor , se almacena como una matriz de datos m-by-n-by-3 que define los componentes de color rojo, verde y azul para cada píxel individual. Las imágenes RGB no utilizan una paleta. El color de cada píxel se determina mediante la combinación de las intensidades rojo, verde y azul almacenadas en cada plano de color en la ubicación del píxel. Los formatos de archivo de gráficos almacenan imágenes RGB como imágenes de 24 bits, donde los componentes rojo, verde y azul son de 8 bits cada uno. Esto produce un potencial de 16 millones colores. La precisión con la que se puede replicar una imagen de la vida real ha llevado al apodo de "truecolor Image".

Un array MATLAB® RGB puede ser de clase double, uint8 o uint16. En una matriz RGB de clase double, cada componente de color es un valor entre 0 y 1. Un píxel cuyos componentes de color son (0, 0, 0) se muestra como negro, y un píxel cuyos componentes de color son (1, 1, 1) se muestra como blanco. Los tres componentes de color de cada píxel se almacenan a lo largo de la tercera dimensión de la matriz de datos. Por ejemplo, los componentes de color rojo, verde y azul del píxel (10, 5) se almacenan en RGB(10,5,1), RGB(10,5,2) y RGB(10,5,3), respectivamente.

Para mostrar la imagen truecolor RGB, utilice la función image :

image(RGB) 

La siguiente figura muestra una imagen RGB de la clase double.

Para determinar el color del píxel en (2, 3), mire el trío RGB almacenado en (2, 3, 1:3). Suponga (2, 3, 1) contiene el valor 0.5176, (2, 3, 2) contiene 0.1608, y (2, 3, 3) contiene 0.0627. El color para el píxel en (2, 3) es

0.5176 0.1608 0.0627