Main Content

Cómo se relacionan los datos de imágenes a un mapa de colores

Cuando muestra imágenes utilizando la función image, puede controlar cómo el rango de valores de píxeles se asigna al rango del mapa de colores. Por ejemplo, aquí hay un cuadrado mágico de 5 por 5 que se muestra como una imagen que utiliza el mapa de colores predeterminado.

A = magic(5)
A =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
im = image(A);
axis off
colorbar

Image of a 5-by-5 magic square displayed with a colorbar using the default colormap

A contiene valores entre 1 y 25. MATLAB® trata dichos valores como índices del mapa de colores, que consta de 64 entradas. De este modo, todos los píxeles en la imagen anterior se asignan a las primeras 25 entradas del mapa de colores (aproximadamente la región azul de la barra de colores).

Magic square values 1 through 25 mapping to the first 25 entries of the colormap

Puede controlar esta asignación con la propiedad CDataMapping del objeto Image. El comportamiento predeterminado mostrado en el diagrama anterior se corresponde con la opción 'direct' de esta propiedad. La asignación directa es de utilidad cuando muestra imágenes (como imágenes GIF) que contienen su propio mapa de colores. Sin embargo, si su imagen representa medidas de algunas unidades físicas, como metros o grados, establezca la propiedad CDataMapping en 'scaled'. La asignación escalada utiliza el rango de colores completo y le permite visualizar las diferencias relativas de sus datos.

im.CDataMapping = 'scaled';

A 5-by-5 magic square displayed with a colorbar using the default colormap with CDataMapping set to 'scaled'. The colors in the image span the full range of the colormap.

La opción 'scaled' asigna el valor más pequeño en A a la primera entrada del mapa de colores y asigna el valor más grande en A a la mayor entrada del mapa de colores. Todos los valores intermedios de A se escalan de forma lineal en el mapa de colores.

Magic square values 1 through 25 mapping across the full range of the colormap

Como una alternativa de establecer la propiedad CDataMapping en 'scaled', puede llamar a la función imagesc para conseguir el mismo efecto.

imagesc(A)
axis off
colorbar

A 5-by-5 magic square displayed with a colorbar using the default colormap. The colors in the image span the full range of the colormap.

Si cambia el mapa de colores, los valores de A se escalan al nuevo mapa de colores.

colormap(gray)

A 5-by-5 magic square displayed with a colorbar using the gray colormap. Each rectangular region is a shade of gray.

Asignar de forma escalada también es útil para mostrar imágenes gráficas que no tienen mapa de colores o si desea cambiar el mapa de colores de una imagen gráfica. Los siguientes comandos muestran una imagen que utiliza el mapa de colores gray, diferente del mapa de colores original almacenado con esta imagen.

load clown
image(X,'CDataMapping','scaled')
colormap(gray)
axis off
colorbar

Clown image displayed with a colorbar using the gray colormap

Consulte también

Funciones

Propiedades

Temas relacionados