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
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).
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';
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.
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
Si cambia el mapa de colores, los valores de A
se escalan al nuevo mapa de colores.
colormap(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