jaccard
Coeficiente de similitud de Jaccard para segmentación de imágenes
Descripción
calcula la intersección de las imágenes binarias similarity
= jaccard(BW1
,BW2
)BW1
y BW2
dividida entre la unión de BW1
y BW2
, también conocido como el índice de Jaccard. Las imágenes pueden ser imágenes binarias, imágenes de etiquetas o imágenes categóricas.
calcula el índice de Jaccard para cada etiqueta en imágenes de etiqueta similarity
= jaccard(L1
,L2
)L1
y L2
.
calcula el índice de Jaccard para cada categoría en imágenes categóricas similarity
= jaccard(C1
,C2
)C1
y C2
.
Ejemplos
Lea una imagen que contenga un objeto que desee segmentar. Convierta la imagen a escala de grises y muestre el resultado.
A = imread('hands1.jpg'); I = im2gray(A); figure imshow(I) title('Original Image')
Use el método de contornos activos (snakes) para segmentar la mano.
mask = false(size(I)); mask(25:end-25,25:end-25) = true; BW = activecontour(I, mask, 300);
Lea la validación (ground truth) con la que comparar la segmentación.
BW_groundTruth = imread('hands1-mask.png');
Calcule el índice de Jaccard de esta segmentación.
similarity = jaccard(BW, BW_groundTruth);
Muestre las máscaras unas sobre otras. Los colores indican diferencias entre las máscaras.
figure
imshowpair(BW, BW_groundTruth)
title(['Jaccard Index = ' num2str(similarity)])
En este ejemplo se muestra cómo segmentar una imagen en múltiples regiones. Después, el ejemplo calcula el coeficiente de similitud de Jaccard para cada región.
Lea una imagen con varias regiones que desee segmentar.
RGB = imread('yellowlily.jpg');
Cree garabatos para tres regiones que distingan las características típicas de su color. La primera región clasifica la flor amarilla. La segunda región clasifica el tallo y las hojas verdes. La última región clasifica la tierra marrón en dos zonas separadas de la imagen. Las regiones están especificadas por un vector de 4 elementos cuyos elementos indican las coordenadas x e y de la esquina superior izquierda de la ROI, con el ancho de la ROI y la altura de la ROI.
region1 = [350 700 425 120]; % [x y w h] format
BW1 = false(size(RGB,1),size(RGB,2));
BW1(region1(2):region1(2)+region1(4),region1(1):region1(1)+region1(3)) = true;
region2 = [800 1124 120 230];
BW2 = false(size(RGB,1),size(RGB,2));
BW2(region2(2):region2(2)+region2(4),region2(1):region2(1)+region2(3)) = true;
region3 = [20 1320 480 200; 1010 290 180 240];
BW3 = false(size(RGB,1),size(RGB,2));
BW3(region3(1,2):region3(1,2)+region3(1,4),region3(1,1):region3(1,1)+region3(1,3)) = true;
BW3(region3(2,2):region3(2,2)+region3(2,4),region3(2,1):region3(2,1)+region3(2,3)) = true;
Muestre las regiones de valor inicial sobre la imagen.
figure imshow(RGB) hold on visboundaries(BW1,'Color','r'); visboundaries(BW2,'Color','g'); visboundaries(BW3,'Color','b'); title('Seed Regions')
Segmente la imagen en tres regiones mediante segmentación geodésica basada en el color.
L = imseggeodesic(RGB,BW1,BW2,BW3,'AdaptiveChannelWeighting',true);
Cargue una segmentación de validación de la imagen.
L_groundTruth = double(imread('yellowlily-segmented.png'));
Compare visualmente los resultados de la segmentación con la validación.
figure imshowpair(label2rgb(L),label2rgb(L_groundTruth),'montage') title('Comparison of Segmentation Results (Left) and Ground Truth (Right)')
Calcule el índice de similitud de Jaccard para cada región segmentada.
similarity = jaccard(L, L_groundTruth)
similarity = 3×1
0.8861
0.5683
0.8414
El índice de similitud de Jaccard es claramente más pequeño en la segunda región. Este resultado es consistente con la comparación visual de los resultados de la segmentación, que por error clasifican la tierra en la esquina derecha de abajo de la imagen como hojas.
Argumentos de entrada
Primera imagen binaria, especificada como arreglo lógico de cualquier dimensión.
Tipos de datos: logical
Segunda imagen binaria, especificada como arreglo lógico del mismo tamaño que BW1
.
Tipos de datos: logical
Primera imagen de etiqueta, especificada como arreglo de enteros no negativos, de cualquier dimensión.
Tipos de datos: double
Segunda imagen de etiqueta, especificada como arreglo de enteros no negativos del mismo tamaño que L1
.
Tipos de datos: double
Primera imagen categórica, especificada como arreglo categorical
de cualquier dimensión.
Tipos de datos: category
Segunda imagen categórica, especificada como arreglo categorical
del mismo tamaño que C1
.
Tipos de datos: category
Argumentos de salida
Coeficiente de similitud de Jaccard, devuelto como escalar numérico o vector numérico con valores en el intervalo [0, 1]. Un valor de similarity
de 1 significa que las segmentaciones en las dos imágenes coinciden perfectamente. Si los arreglos de entrada son:
imágenes binarias,
similarity
es un escalar.imágenes de etiqueta,
similarity
es un vector, donde el primer coeficiente es el índice de Jaccard para la etiqueta 1, el segundo coeficiente es el índice de Jaccard para la etiqueta 2; y así sucesivamente.imágenes categóricas,
similarity
es un vector, donde el primer coeficiente es el índice de Jaccard para la primera categoría, el segundo coeficiente es el índice de Jaccard para la segunda categoría; y así sucesivamente.
Tipos de datos: double
Más acerca de
El coeficiente de similitud de Jaccard de dos conjuntos A y B (también conocido como intersección sobre unión) se expresa así:
jaccard
(A,B) = | intersection
(A,B) | / | union
(A,B) |
donde |A| representa el conjunto cardinal A. El índice de Jaccard también puede expresarse en términos de verdaderos positivos (TP), falsos positivos (FP) y falsos negativos (FN) como:
jaccard
(A,B) = TP / (TP + FP + FN)
El índice de Jaccard está relacionado con el índice de Dice según:
jaccard
(A,B) = dice
(A,B) / (2 - dice
(A,B) )
Historial de versiones
Introducido en R2017b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)