Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

labeloverlay

Superponer regiones de una matriz de etiquetas en una imagen 2D

Descripción

B = labeloverlay(A,L) fusiona la imagen de entrada, A, con un color diferente para cada etiqueta distinta de cero en la matriz de etiquetas L. La función labeloverlay no fusiona los píxeles del fondo con un color.

ejemplo

B = labeloverlay(A,BW) fusiona la imagen de entrada con un color donde la máscara BW es true. La función labeloverlay no fusiona los píxeles del fondo (etiquetados como false) con un color.

ejemplo

B = labeloverlay(A,C) fusiona la imagen de entrada con un color diferente para cada etiqueta en la matriz categórica C. La función labeloverlay no fusiona los píxeles de la categoría <undefined> con un color.

B = labeloverlay(___,Name=Value) calcula la imagen superpuesta fusionada, B, utilizando argumentos nombre-valor para controlar aspectos del cálculo.

ejemplo

Ejemplos

contraer todo

Lea una imagen y luego segméntela utilizando la función superpixels.

A = imread("kobi.png");
[L,N] = superpixels(A,20);

Fusione la imagen original con colores únicos para cada región en la matriz de etiquetas segmentada. Muestre la imagen fusionada. Algunas regiones adyacentes tienen colores similares, como los tonos morados sobre el ruido y un ojo. Como los colores son similares, es difícil determinar visualmente el límite de las regiones.

B = labeloverlay(A,L);
imshow(B)

Figure contains an axes object. The hidden axes object contains an object of type image.

Mejore el contraste de color entre regiones adyacentes especificando el argumento nombre-valor ColorAssignment como "contrasting-neighbors". Muestre la imagen fusionada. En esta imagen fusionada solo se utilizan cuatro colores de alto contraste para las etiquetas. El alto contraste de color mejora la visibilidad de los límites de las regiones.

C = labeloverlay(A,L,ColorAssignment="contrasting-neighbors");
imshow(C)

Figure contains an axes object. The hidden axes object contains an object of type image.

Lea una imagen en escala de grises y muéstrela.

A = imread("coins.png");
imshow(A)

Figure contains an axes object. The hidden axes object contains an object of type image.

Cree una máscara utilizando el umbral binario.

t = graythresh(A);
BW = imbinarize(A,t);
imshow(BW)

Figure contains an axes object. The hidden axes object contains an object of type image.

Fusione la máscara con la imagen original. Muestre la imagen fusionada.

B = labeloverlay(A,BW);
imshow(B)

Figure contains an axes object. The hidden axes object contains an object of type image.

Lea una imagen y su imagen de etiqueta segmentada.

A = imread("yellowlily.jpg");
L = imread("yellowlily-segmented.png");

Convierta la matriz numérica de etiquetas en una matriz categórica. Especifique los valores y los nombres de las categorías.

C = categorical(L,[1 2 3],["petal" "leaf" "dirt"]);

Fusione las etiquetas categóricas con la imagen original. Muestre la imagen fusionada.

B = labeloverlay(A,C);
imshow(B)

Figure contains an axes object. The hidden axes object contains an object of type image.

Fusione la imagen original con solo dos etiquetas de la segmentación categórica. Cambie el mapa de colores, aumente la opacidad de la etiqueta y muestre el resultado.

B2 = labeloverlay(A,C,IncludedLabels=["petal" "leaf"], ...
    Colormap="autumn",Transparency=0.25);
imshow(B2)

Figure contains an axes object. The hidden axes object contains an object of type image.

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como imagen 2D en escala de grises o color.

Tipos de datos: single | double | int8 | int16 | uint8 | uint16

Etiquetas, especificadas como una matriz de enteros no negativos.

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Máscara, especificada como una matriz lógica.

Tipos de datos: logical

Etiquetas de categoría, especificadas como una matriz categorical.

Tipos de datos: categorical

Argumentos de par nombre-valor

contraer todo

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: labeloverlay(A,L,Colormap="hot") muestra las etiquetas en los colores del mapa de colores "hot".

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: labeloverlay(A,L,"Colormap","hot") muestra las etiquetas en los colores del mapa de colores "hot".

Desde R2025a

Asignación de colores, especificada como uno de los valores de la tabla.

Valor de la asignación de coloresDescripciónMuestra de resultados
"noshuffle"Asignar los colores del mapa de colores para etiquetar regiones de matriz en orden numérico. Cada región tiene un color único.

Label overlay without shuffling color order.

"shuffle"Asignar los colores del mapa de colores de forma pseudoaleatoria. Cada región tiene un color único.

Label overlay with shuffling color order.

"auto"Asignar los colores del mapa de colores según el formato de Colormap. De forma predeterminada, labeloverlay mezcla el orden de los colores cuando se especifica un mapa de colores por su nombre, y conserva el orden de los colores cuando se especifica el mapa de colores como una matriz numérica.

Es igual a "shuffle" cuando se especifica Colormap como cadena o cuando se utiliza el valor predeterminado de Colormap.

Es igual a "noshuffle" cuando se especifica Colormap como matriz numérica.

"contrasting-neighbors"Asignar un subconjunto de colores del mapa de colores para maximizar el contraste entre regiones adyacentes. Cada color puede corresponder a varias etiquetas.

Label overlay with four high-contrast colors that improve the clarity of region boundaries.

Mapa de colores, especificado como uno de estos valores:

  • Un mapa de colores de l por 3. Los tripletes RGB de cada fila del mapa de colores deben estar normalizados al intervalo [0, 1]. l es el número de etiquetas en la matriz de etiquetas L, máscara binaria BW o matriz categórica C.

  • Una cadena o un vector de caracteres correspondiente a una de las entradas válidas de la función colormap. De forma predeterminada, labeloverlay mezcla el mapa de colores especificado para que las etiquetas adyacentes sean más distintas.

Nota

Si también especifica ColorAssignment como "contrasting-neighbors", labeloverlay selecciona un subconjunto de colores del mapa de colores con alto contraste visual.

Ejemplo: [0.2, 0.1, 0.5; 0.1, 0.5, 0.8]

Ejemplo: "hot"

Tipos de datos: single | double | char | string

Etiquetas que se desea mostrar en la imagen fusionada, especificadas como uno de los siguientes:

  • Un entero, o vector de enteros, en el intervalo [0, max(L(:))]. Por defecto, labeloverlay muestra todas las etiquetas distintas de cero.

  • Una cadena, o vector de cadenas, correspondiente a las etiquetas en la matriz categórica C. Por defecto, labeloverlay muestra todas las etiquetas categóricas definidas.

Cualquier etiqueta no incluida en el vector se considera el fondo. Por ejemplo, en el vector [1 3 4], el valor 2 se consideraría el fondo, si existiera como etiqueta.

Ejemplo: [1 3 4]

Ejemplo: ["flower","stem"]

Tipos de datos: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | string

Transparencia de las etiquetas mostradas, especificada como un número en el intervalo [0, 1].

  • Un valor de 0 hace que las etiquetas de color sean completamente opacas.

  • Un valor de 1 hace que las etiquetas de color sean completamente transparentes.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Imagen fusionada, especificada como matriz numérica del mismo tamaño que A.

Tipos de datos: uint8

Historial de versiones

Introducido en R2017b

expandir todo