Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

imseggeodesic

Segmenta la imagen en dos o tres regiones utilizando la segmentación de color basada en la distancia geodésica

Descripción

ejemplo

L = imseggeodesic(RGB,BW1,BW2) segmentos de la imagen de color, devolviendo una imagen binaria segmentada con etiquetas. y son imágenes binarias que especifican la ubicación de las regiones de inicialización iniciales, llamadas, para las dos regiones (primer plano y fondo).RGBLBW1BW2Garabatos

utiliza los garabatos especificados en y como ejemplos representativos para calcular las estadísticas para sus respectivas regiones, que luego utiliza en la segmentación.imseggeodesicBW1BW2 Los garabatos especificados por y (las regiones que son verdaderas lógicas) no deben superponerse.BW1BW2 El algoritmo subyacente utiliza las estadísticas estimadas sobre las regiones marcadas por los garabatos para la segmentación. Cuanto mayor sea el número de píxeles marcados por garabatos, más precisa será la estimación de las estadísticas de la región, lo que normalmente conduce a una segmentación más precisa. Por lo tanto, es una buena práctica para proporcionar tantos garabatos como sea posible. Normalmente, proporcione al menos unos pocos cientos de píxeles como garabatos para cada región.

ejemplo

L = imseggeodesic(RGB,BW1,BW2,BW3) segmentos de la imagen de color, devolviendo una imagen segmentada con tres segmentos (segmentación trinaria) con las etiquetas de región especificadas por la matriz de etiquetas. , y son imágenes binarias que especifican la ubicación de las regiones de inicialización iniciales o los garabatos para las tres regiones.RGBLBW1BW2BW3 Los garabatos especificados por, y (regiones que son verdaderas lógicas) no deben superponerse.BW1BW2BW3

ejemplo

[L,P] = imseggeodesic(___) también devuelve la probabilidad de que cada píxel pertenezca a cada una de las etiquetas de la matriz.P

ejemplo

[L,P] = imseggeodesic(___,Name,Value) utiliza pares nombre-valor para controlar los aspectos de la segmentación.

Ejemplos

contraer todo

Leer la imagen en el espacio de trabajo y mostrarla.

RGB = imread('yellowlily.jpg'); imshow(RGB,'InitialMagnification',50) hold on

Especifique las regiones de inicialización iniciales o "garabatos" para el objeto en primer plano, en el formulario.[left_topR left_topC bottom_rightR bottom_rightC]

bbox1 = [700 350 820 775]; BW1 = false(size(RGB,1),size(RGB,2)); BW1(bbox1(1):bbox1(3),bbox1(2):bbox1(4)) = true;

Especifique las regiones de inicialización iniciales o "garabatos" para el fondo.

bbox2 = [1230 90 1420 1000];   BW2 = false(size(RGB,1),size(RGB,2)); BW2(bbox2(1):bbox2(3),bbox2(2):bbox2(4)) = true;

Mostrar regiones de inicialización. El primer plano está en rojo y el fondo es azul.

visboundaries(BW1,'Color','r'); visboundaries(BW2,'Color','b');

Segmenta la imagen.

[L,P] = imseggeodesic(RGB,BW1,BW2);

Mostrar resultados.

figure imshow(label2rgb(L),'InitialMagnification', 50) title('Segmented image')

   figure imshow(P(:,:,1),'InitialMagnification', 50) title('Probability that a pixel belongs to the foreground')

Leer la imagen en el espacio de trabajo y mostrarla.

RGB = imread('yellowlily.jpg');  imshow(RGB,'InitialMagnification', 50) hold on

Crea garabatos para tres regiones. Tenga en cuenta que puede especificar los garabatos de forma interactiva mediante herramientas como,,, y.roipolyimfreehandimrectimpolyimellipse La región 1 es la flor amarilla. La región 2 son las hojas verdes. La región 3 es el fondo.

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;

Visualice las regiones de inicialización.

visboundaries(BW1,'Color','r'); visboundaries(BW2,'Color','g'); visboundaries(BW3,'Color','b');

Segmenta la imagen.

[L,P] = imseggeodesic(RGB,BW1,BW2,BW3, 'AdaptiveChannelWeighting', true);

Mostrar resultados.

figure imshow(label2rgb(L),'InitialMagnification', 50) title('Segmented image with three regions')

   figure imshow(P(:,:,2),'InitialMagnification', 50) title('Probability that a pixel belongs to region/label 2')

Argumentos de entrada

contraer todo

Imagen que se segmentó, especificada como una imagen RGB. convierte la imagen RGB de entrada al espacio de color YCbCr antes de realizar la segmentación.imseggeodesic

Ejemplo: RGB = imread('peppers.png');

Tipos de datos: double | uint8 | uint16

Imagen Garabato, especificada como una matriz lógica. debe tener el mismo número de filas y columnas que la imagen de entrada.BW1RGB Para especificar los garabatos de forma interactiva, utilice,,,, o.roipolyimfreehandimrectimpolyimellipse

Ejemplo: bbox1 = [700 350 820 775]; BW1 = false(size(RGB,1),size(RGB,2)); BW1(bbox1(1):bbox1(3),bbox1(2):bbox1(4)) = true;

Tipos de datos: logical

Imagen Garabato, especificada como una matriz lógica. debe tener el mismo número de filas y columnas que la imagen de entrada.BW2RGB Para especificar los garabatos de forma interactiva, utilice,,,, o.roipolyimfreehandimrectimpolyimellipse

Ejemplo: bbox2 = [1230 90 1420 1000]; BW2 = false(size(RGB,1),size(RGB,2)); BW2(bbox2(1):bbox2(3),bbox2(2):bbox2(4)) = true;

Tipos de datos: logical

Imagen Garabato, especificada como una matriz lógica. debe tener el mismo número de filas y columnas que la imagen de entrada.BW3RGB Para especificar los garabatos de forma interactiva, utilice,,,, o.roipolyimfreehandimrectimpolyimellipse

Ejemplo: bbox3 = [20 1320 480 200; 1010 290 180 240]; BW3 = false(size(RGB,1),size(RGB,2)); BW3(bbox3(1,2):bbox3(1,2)+bbox3(1,4),bbox3(1,1):bbox3(1,1)+bbox3(1,3)) = true;

Tipos de datos: logical

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: [L,P] = imseggeodesic(RGB,BW1,BW2,BW3,'AdaptiveChannelWeighting',true);

Utilice la ponderación de canal adaptable, especificada como un escalar lógico. Cuando, pesa los canales proporcionales a la cantidad de información discriminatoria que tienen que es útil para la segmentación (basado en los garabatos proporcionados como entrada).trueimseggeodesic Cuando (el valor predeterminado), pesa todos los canales por igual.falseimseggeodesic

Ejemplo: [L,P] = imseggeodesic(RGB,BW1,BW2,BW3, 'AdaptiveChannelWeighting', true);

Tipos de datos: logical

Argumentos de salida

contraer todo

Label Matrix, devuelta como una matriz de enteros no negativos. Los píxeles etiquetados son el fondo y los píxeles etiquetados identifican una región segmentada.01 Los píxeles etiquetados identifican otra región segmentada en la segmentación trinaria.2

Tipos de datos: double

Probabilidad de que un píxel pertenezca a una región etiquetada, especificada como una matriz de-por--por-2 para la segmentación binaria o una matriz de-por-por-3 para la segmentación trinaria. y son el número de filas y columnas de la imagen de entrada. Especifica la probabilidad de píxel en la ubicación que pertenece a la etiqueta.MNMNMNP(i,j,k)(i,j)k

Tipos de datos: double

Sugerencias

  • Los garabatos para las dos (o tres) regiones no deben superponerse entre sí. Cada matriz de garabatos (,, y) debe ser no vacía, es decir, debe haber al menos un píxel (aunque cuanto más mejor) se marque como true lógico en cada uno de los garabatos.BW1BW2BW3

Algoritmos

utiliza un algoritmo de segmentación de color basado en la distancia geodésica (similar a).imseggeodesic1

Referencias

[1] A. Protiere and G. Sapiro, Interactive Image Segmentation via Adaptive Weighted Distances, IEEE Transactions on Image Processing. Volume 16, Issue 4, 2007.

Introducido en R2015a