Mapa de colores inverso de MATLAB

Ammar Ali 15 febrero 2024
Mapa de colores inverso de MATLAB

Este tutorial analizará la inversión de un mapa de colores utilizando la función flipud() en MATLAB.

Mapa de colores inverso de MATLAB

El mapa de colores establece los colores de un objeto gráfico como una imagen. Un mapa de colores es una matriz de valores que utiliza valores de triplete RGB para asignar colores a los valores de una matriz o matriz.

En Matlab, una imagen se almacena en forma de matriz y contiene números que definen sus colores. Cuando usamos una función como imshow() para mostrar la matriz como una imagen, la función asigna valores de color a la imagen usando un mapa de colores.

Para invertir un mapa de colores, podemos usar la función flipud() para invertir los valores de una matriz o arreglo. El mapa de colores también es una matriz que contiene los valores de los colores, por lo que podemos usar la función flipud() para invertir los colores presentes en el mapa de colores.

Si invertimos un mapa de colores, los colores presentes en una imagen y otros objetos que Matlab está mostrando en ese momento se invertirán. Por ejemplo, creemos una imagen binaria e invirtamos su mapa de colores usando la función flipud().

Vea el código a continuación.

clc
clear

v = [0 0 0 0;0 1 0 0;0 0 1 0;0 0 0 0];
figure(1)
imshow(v,'InitialMagnification','fit')
colorbar
figure(2)
imshow(v,'InitialMagnification','fit')
colorbar
colormap(flipud(gray))

Producción:

mapa de colores inverso

En el código anterior, creamos dos figuras de la imagen binaria usando la función imshow(). La primera figura muestra la imagen original y la barra de colores con el mapa de colores original.

En la segunda figura, hemos invertido el mapa de colores de la primera figura. En la salida, la figura de la izquierda muestra la imagen con el mapa de colores original y la figura de la derecha muestra la imagen con el mapa de colores invertido.

Podemos ver en la salida que los colores están invertidos. El color blanco se convierte en negro y el color negro se convierte en blanco.

En el código anterior, usamos la propiedad de ampliación de la función imshow() para ajustar la imagen dada a la figura porque la imagen es muy pequeña, pero si el tamaño de la imagen de entrada es grande o no queremos magnificar la imagen dada, podemos despreciarla.

En el ejemplo anterior, usamos una imagen binaria con solo dos colores, pero también podemos realizar esta operación con una imagen en color.

Si queremos voltear el mapa de colores de una imagen en color, tenemos que cambiar la última línea del código anterior en el que estamos volteando el mapa de colores gris, pero tenemos que usar el mapa de colores en lugar de gris.

Por ejemplo, usemos la función imagesc() para crear una imagen en color a partir de una matriz e invertir su mapa de colores usando la función flipud().

Vea el código a continuación.

clc
clear

v = [0 0 0 0;0 1 0 0;0 0 1 0;0 0 0 0];
figure(1)
imagesc(v)
colorbar
figure(2)
imagesc(v)
colorbar
colormap(flipud(colormap))

Producción:

mapa de color inverso de la imagen en color

La función imagesc() muestra una imagen con colores escalados. Si la entrada de esta función es una matriz, la función asignará a cada valor un color diferente de un mapa de colores y lo mostrará.

En el código anterior, estamos volteando el mapa de colores anterior y asignando los nuevos valores al nuevo mapa de colores.

En el resultado anterior, la figura de la izquierda muestra la imagen con el mapa de colores original y la figura de la derecha muestra la imagen con el mapa de colores invertido. Podemos ver en el resultado anterior que el color de la imagen y la barra de color han cambiado.

Consulte este enlace(https://www.mathworks.com/help/matlab/ref/colormap.html) para obtener más detalles sobre el mapa de colores. Consulte este enlace(https://www.mathworks.com/help/matlab/ref/colormap.html) para obtener más detalles sobre la función flipud().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artículo relacionado - MATLAB Colormap