Tutorial de MATLAB Colormap (imágenes): mapa de calor, líneas y ejemplos
Tabla de contenido
- ¿Qué es el mapa de colores de MATLAB?
- Descripción
- Nombre del mapa de colores
- Crear un mapa de colores personalizado
- Cómo devolver los valores del mapa de colores utilizados en la trama
- Cómo devolver valores de mapa de colores para ejes específicos
- Cambiar el mapa de colores de las imágenes importadas
- Control de los límites del mapa de colores
- Cómo se relacionan los datos de trazado de superficie con un mapa de colores
- Conclusión
- Referencias
¿Qué es el mapa de colores de MATLAB?
Colormap es una matriz de tres colores que especifica el contenido rojo, verde y azul de los objetos gráficos, como los objetos de superficie, imagen y parche. Los valores RGB son tripletes, lo que significa que están en el orden de Rojo, Verde y Azul y pueden variar de 0 a 1. MATLAB dibuja los objetos al asignar valores de datos a colores en el mapa de colores.
Descripción
Un mapa de colores puede tener hasta 255 filas, lo que muestra cuántos valores se pueden almacenar en un solo byte. El vector triplete RBG muestra las intensidades de los tres componentes de color básicos. Un valor de 0 indica que no hay color y un valor de 1 indica intensidad completa.
Colormap map establece el mapa de colores para la figura actual en uno de los mapas de colores predefinidos. Si establece el mapa de colores para la figura, los ejes y gráficos de la figura usan el mismo mapa de colores. El nuevo mapa de colores tiene la misma longitud (número de colores) que el mapa de colores actual. Cuando utiliza esta sintaxis, no puede especificar una longitud personalizada para el mapa de colores.
Por ejemplo: Tabla 1.
Código MATLAB:
abdul = [0 0 0, %black
0 0 1, %red
0 1 0, %green
1 0 0] %blue
% Define a square matrix
SqMat = zeros(15,15);
SqMat(7:9,7:9) = 1;
SqMat(7:9,3:5) = 2;
SqMat(7:9,11:13) = 3;
%Display
figure(1)
colormap (abdul)
imagesc (SqMat)
Fig. 1 (a)
Nombre del mapa de colores
La siguiente tabla enumera los mapas de color predefinidos.
Tabla 2.
Crear un mapa de colores personalizado
Para crear un mapa de colores personalizado, debe especificar map como una matriz de tres columnas de tripletes RGB donde cada fila define un color. Las intensidades deben estar en el rango de 0 a 1.
- Cree un mapa de colores personalizado definiendo una matriz de valores de tres columnas entre 0.0 y 1.0. Cada fila define un valor de vector triplete RGB de tres elementos.
- La primera columna especifica las intensidades rojas.
- La segunda columna especifica las intensidades verdes.
- La tercera columna especifica las intensidades azules. . Por ejemplo, esta matriz define un mapa de colores que contiene cinco colores.
Código Matlab:
map = [0.2 0.1 0.5
0.1 0.5 0.8
0.2 0.7 0.6
0.8 0.7 0.3
0.9 1 0];
surf(peaks)
colormap(map)
Fig. 2 (a)
Vaya a la configuración personalizada del mapa de colores encerrada en la figura 2 (b). Verás una ventana:
Fig. 2 (b)
Cómo devolver los valores del mapa de colores utilizados en la trama
Para devolver los valores de colormap, se usa el comando ‘cmap’. Pruebe el ejemplo anterior junto con el siguiente código. Primero cree un diagrama de superficie de la peaks función y especifique un mapa de colores.
Código MATLAB:
map = [0.2 0.1 0.5
0.1 0.5 0.8
0.2 0.7 0.6
0.8 0.7 0.3
0.9 1 0];
surf(peaks)
colormap(map)
mesh(peaks);
colormap(autumn(5))
cmap = colormap
Salida de la ventana de comandos:
Fig. 3 (a)
Cómo devolver valores de mapa de colores para ejes específicos
- El primer paso es devolver los valores del mapa de colores para ejes específicos pasando su manejador de ejes a la colormap función.
- Ahora cree una figura con dos subtramas y devuelva los identificadores de los ejes, x1 y x2. use un mapa de colores diferente para cada eje y agregue un contorno relleno para cada eje.
- Devuelva los valores del mapa de colores utilizados en la subtrama superior pasando su identificador de ejes,, x1 a la función colormap.
Fig. 4. (a)
- El mapa de colores de la figura afecta a todos los ejes en las parcelas dentro de la figura.
- Defina un mapa de colores único para los diferentes ejes dentro de una figura.
- Objeto de gráficos que tiene una propiedad Colormap. Por ejemplo, puede cambiar el mapa de colores para un objeto HeatmapChart, fig. 4 (a).
- Cada fila de la matriz define un triplete RGB que especifica un color del mapa de colores. Los valores están en el rango de 0 a 1. Los valores del mapa de colores volverán como una matriz de tres columnas de tripletes RGB.
Código MATLAB:
x1 = subplot(2,1,1);
contourf(peaks)
colormap(x1,hot(8))
x2 = subplot(2,1,2);
contourf(peaks)
colormap(x2,pink)
cmap = colormap(x1)
Fig. 4 (b)
Cambiar el mapa de colores de las imágenes importadas
- Importar y leer imagen:
- Cambie el directorio y la carpeta de búsqueda desde la opción que se muestra en la figura 5 (a).
- Seleccione la imagen que desea importar.
- El nombre de la imagen se mostrará en el lugar de trabajo.
- Ingrese el comando “imread (nombre de imagen. Formato de imagen)” en el símbolo del sistema.
- Por ejemplo: imread (xxx.PNG).
Fig.5 (a)
Fig. 5 (b)
- Analizando el componente RGB usando el cursor de datos:
- La imagen seleccionada se abrirá .
- Haga clic en el botón del cursor de datos resaltado en la fig. 5 (c).
- Haga clic en la imagen y se abrirá una ventana que muestra los valores del vector de tripletes RGB que se muestran en la fig. 5 (d).
- Mueva el cursor sobre el área para la que desea conocer el valor.
Fig. 5 (c)
Fig. 5 (d)
Cambiar el mapa de colores de su imagen:
Seleccione la opción de mapa de color personalizado que se muestra en la fig. 2. (a).
Seleccione el mapa de colores de su elección o puede personalizarlo como se muestra en la figura 5. (e).
Fig. 5 (e)
Control de los límites del mapa de colores
Muchos tipos de combinaciones que crea, es la característica de MATLAB para asignar el rango completo de sus datos al mapa de colores. El valor más pequeño en los datos se asigna a la primera fila en el mapa de colores y el valor más grande se asigna a la última fila en el mapa de colores. Todos los valores intermedios se asignan linealmente a las filas intermedias del mapa de colores.
Incluso si el rango que elige es diferente al rango de sus datos, es posible realizar la asignación para cualquier rango que elija. La asignación predeterminada se usa principalmente en diferentes casos. Elegir un rango de asignación diferente le permite:
- Para ver si sus datos están en el límite o más allá de los límites de ese rango.
- Para ver si sus datos se encuentran dentro de ese rango.
Tome un ejemplo, considere la superficie Z = X + Y y la condición límite es:
[–30 ≤ x ≤ 30 y –30 ≤ y ≤ 30].
Código MATLAB:
[X,Y] = meshgrid(-30:30);
Z = X + Y;
surf(X,Y,Z);
xlabel(‘X’);
ylabel(‘Y’);
zlabel(‘Z = C’); % C defines ‘Clim’
colorbar
Fig. 6 (a)
Cómo se relacionan los datos de trazado de superficie con un mapa de colores
En MATLAB, la superficie se define por las coordenadas Z de puntos sobre una cuadrícula en el plano x – y . Los datos de trazado de superficie describen las propiedades que controlan el color en esta presentación. La propiedad CData’ del objeto surface contiene una matriz’ C’ que está asociada a cada punto de la cuadrícula (en la superficie) a un color en el mapa de colores. Por defecto, Z = C donde Z está la matriz que contiene los valores de z = f ( x , y ) en los puntos de la cuadrícula. Por lo tanto, los colores varían cuando Z cambia.
[cindx,cimap,clim] = shaderel(X,Y,Z,cmap) genera el mapa de colores y los índices de color que permiten mostrar una superficie en relieve sombreado de color. Los colores son proporcionales a la magnitud de Z pero se encuentran en los tonos de gris basados en las normales de la superficie para simular la iluminación de la superficie. Esta representación permite ver diferencias tanto a gran como a pequeña escala X, Y y Z define la superficie.
La propiedad CLim’ para gráficos de superficie, parches, objetos gráficos o cualquier imagen que use un mapa de colores se puede personalizar. Los valores Z determinan una superficie de líneas de cuadrícula X e Y y rellenan el color de un mapa de colores. Sin embargo, esta propiedad solo afecta a los objetos gráficos que tienen establecida la propiedad CData mapping ‘scaled’. Si se establece en ‘direct’, entonces todos los valores de ‘ C’ índice se dirigirán al mapa de colores sin ninguna escala.
- Los valores de C’ que son menores que 1 se recortan y se muestran como el primer color en el mapa de colores.
- Los valores de C’ mayor que la longitud del mapa de colores se recortan y se muestran como el último color en el mapa de colores.
Asegúrese de que su recorte esté configurado en ‘ON’.
Fig. 9 (a)
Conclusión
El comando ‘Colormap’ en el software MATLAB se puede usar para los siguientes propósitos:
- Tiene la función de editar esquemas de color de una imagen, figura, parcelas, mallas, etc. Podemos aislar un solo color de cualquier imagen, mientras que todos los demás colores están establecidos en 0.
- Podemos encontrar el valor del vector RBG en cualquier punto de una imagen en particular. Esto es útil en el procesamiento de imágenes.
- Podemos crear nuestros propios efectos de filtro para crear una imagen hermosa.
Referencias
- https://www.mathworks.com
- Software MATLAB