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.

regionprops

Medir las propiedades de las regiones de imagen

Sintaxis

stats = regionprops(BW,properties)
stats = regionprops(CC,properties)
stats = regionprops(L,properties)
stats = regionprops(___,I,properties)
stats = regionprops(output,___)
stats = regionprops(gpuarrayImg,___)

Descripción

ejemplo

stats = regionprops(BW,properties) Devuelve mediciones para el conjunto de propiedades especificadas por properties para cada componente conectado a 8 (Object) en la imagen binaria, BW. stats es struct array que contiene una estructura para cada objeto de la imagen. Puede utilizar regionprops en regiones contiguas y regiones discontiguas (consulte Algoritmos).

Nota

Para devolver las mediciones de una imagen volumétrica tridimensional, considere el uso de regionprops3. Mientras que regionprops puede aceptar imágenes 3D, regionprops3 calcula más estadísticas para imágenes 3D que regionprops.

Para todas las sintaxis, si no especifica el argumento properties , regionprops devuelve las mediciones 'Area', 'Centroid'y 'BoundingBox' .

stats = regionprops(CC,properties) Devuelve mediciones para el conjunto de propiedades especificadas por properties para cada componente conectado (Object) en CC. CC es una estructura devuelta por bwconncomp.

stats = regionprops(L,properties) Devuelve mediciones para el conjunto de propiedades especificadas por properties para cada región etiquetada en la matriz de etiquetas L.

stats = regionprops(___,I,properties) Devuelve mediciones para el conjunto de propiedades especificadas por properties para cada región etiquetada en la I de imagen. La primera entrada a regionprops (BW, CCo L) identifica las regiones de I. El tamaño de la primera entrada debe coincidir con el tamaño de la imagen, es size(I) debe ser igual a size(BW), CC.ImageSizeo size(L).

ejemplo

stats = regionprops(output,___) Devuelve las mediciones de un conjunto de propiedades, donde output especifica el tipo de valor devuelto. regionprops puede devolver las mediciones en un struct o en un table.

ejemplo

stats = regionprops(gpuarrayImg,___) realiza las mediciones en una GPU. gpuarrayImg puede ser una imagen binaria de 2-D (logical gpuArray) o una matriz de etiqueta gpuArray. La GPU no admite la estructura de componentes conectada (CC) devuelta por bwconncomp .

Cuando se ejecuta en una GPU, regionprops no admite las siguientes propiedades: 'ConvexArea', 'ConvexHull', 'ConvexImage', 'EulerNumber', 'FilledArea', 'FilledImage'y'Solidity'.

Ejemplos

contraer todo

Lee la imagen binaria en el espacio de trabajo.

BW = imread('text.png');

Calcule centroides para los componentes conectados en la imagen usando regionprops.

s = regionprops(BW,'centroid');

Concatenar matriz de estructura que contiene centroides en una única matriz.

centroids = cat(1, s.Centroid);

Mostrar imagen binaria con ubicaciones centroide superpuestas.

imshow(BW) hold on plot(centroids(:,1),centroids(:,2), 'b*') hold off

Lea la imagen binaria en un gpuArray.

BW = gpuArray(imread('text.png')); 

Calcule la centroides de los objetos de la imagen.

s  = regionprops(BW,'centroid'); 

Trace el centroides en la imagen.

centroids = cat(1, s.Centroid); imshow(BW) hold on plot(centroids(:,1), centroids(:,2), 'b*') hold off

Calcule el centro y los radios de los objetos circulares de una imagen y utilice esta información para trazar círculos en la imagen. En este ejemplo, regionprops devuelve la información que calcula en una tabla.

Leer una imagen en el espacio de trabajo.

a = imread('circlesBrightDark.png');

Convierte la imagen de entrada en una imagen binaria.

bw = a < 100; imshow(bw) title('Image with Circles')

Calcule las propiedades de las regiones de la imagen y devuelva los datos en una tabla.

stats = regionprops('table',bw,'Centroid',...     'MajorAxisLength','MinorAxisLength')
stats=4×3 table
        Centroid        MajorAxisLength    MinorAxisLength
    ________________    _______________    _______________

     256.5     256.5        834.46             834.46     
       300       120        81.759             81.759     
    330.47    369.83        111.78             110.36     
       450       240        101.72             101.72     

Obtener centros y radios de los círculos.

centers = stats.Centroid; diameters = mean([stats.MajorAxisLength stats.MinorAxisLength],2); radii = diameters/2;

Trazar los círculos.

hold on viscircles(centers,radii); hold off

Argumentos de entrada

contraer todo

Introduzca la imagen binaria, especificada como una matriz lógica de cualquier dimensión.

Tipos de datos: logical

Tipo de medida, especificada como una lista separada por comas de escalares de cadenas o vectores de caracteres, una matriz de celdas de escalares de cadena o vectores de caracteres, o como 'all' o 'basic'. Los nombres de propiedad no distinguen entre mayúsculas y minúsculas y pueden abreviarse. Cuando se utiliza con la generación de código, regionprops no admite matrices de cadena de escalares de cadenas o vectores de caracteres.

En las tablas siguientes se enumeran todas las propiedades que proporcionan medidas de forma. Las propiedades enumeradas en la tabla Mediciones de valor de píxel sólo son válidas cuando se especifica una imagen en escala de grises. Si especifica 'all', regionprops calcula todas las mediciones de forma y, para las imágenes en escala de grises, también las mediciones del valor de píxel. Si especifica 'basic' o no especifica el argumento properties, regionprops calcula sólo las mediciones 'Area', 'Centroid' y 'BoundingBox'. Puede calcular las siguientes propiedades en las entradas N-D: 'Area', 'BoundingBox', 'Centroid', 'FilledArea', 'FilledImage', 'Image', 'PixelIdxList', 'PixelList'y 'SubarrayIdx'.

Medidas de la forma

Nombre de la propiedadDescripciónSoporte de N-DSoporte de GPUGeneración de código
'Area'

Número real de píxeles en la región, devueltos como escalar. (este valor puede diferir ligeramente del valor devuelto por bwarea, que pondera diferentes patrones de píxeles de forma diferente.)

Para encontrar el equivalente al área de un volumen 3D, utilice la propiedad 'Volume' de regionprops3.

'BoundingBox'Rectángulo más pequeño que contiene la región, devuelto como un vector 1 porQ*2 , donde Q es el número de dimensiones de la imagen. Por ejemplo, en el vector [ul_corner width], ul_corner especifica la esquina superior izquierda del cuadro delimitador en el formulario [x y z ...]. width especifica el ancho del cuadro delimitador a lo largo de cada dimensión en el formulario [x_width y_width ...]. regionprops utiliza ndims para obtener las dimensiones de la matriz de etiquetas o la imagen binaria, ndims(L)y numel para obtener las dimensiones de los componentes conectados, numel(CC.ImageSize).
'Centroid'

Centro de la masa de la región, regresó como un 1-por-Q Vector. El primer elemento de Centroid es la coordenada horizontal (o x-coordenada) del centro de masa. El segundo elemento es la coordenada vertical (o y-coordenada). Todos los demás elementos de Centroid están en orden de dimensión. Esta figura ilustra la centroide y el cuadro delimitador para una región no contigua. La región consiste en los pixeles blancos; la caja verde es la caja de delimitación, y el punto rojo es el centroide.

'ConvexArea'Número de píxeles en 'ConvexImage', devueltos como escalar.2-D solamenteNoNo
'ConvexHull'Polígono convexo más pequeño que puede contener la región, devuelto como una matriz p-por-2. Cada fila de la matriz contiene las coordenadas xy yde un vértice del polígono.2-D solamenteNoNo
'ConvexImage'Imagen que especifica el casco convexo, con todos los píxeles dentro del casco rellenado (establecido en on), devuelto como una imagen binaria (logical). La imagen es del tamaño de la caja delimitadora de la región. (para los píxeles que pasa el límite del casco, regionprops utiliza la misma lógica que roipoly para determinar si el píxel está dentro o fuera del casco.) 2-D solamenteNoNo
'Eccentricity'Excentricidad de la elipse que tiene los mismos segundos momentos que la región, regresó como un escalar. La excentricidad es la relación entre la distancia entre los focos de la elipse y su longitud de eje principal. El valor está entre 0 y 1. (0 y 1 son casos degenerados. Una elipse cuya excentricidad es 0 es en realidad un círculo, mientras que una elipse cuya excentricidad es 1 es un segmento de línea.)2-D solamente
'EquivDiameter'Diámetro de un círculo con la misma área que la región, devuelto como escalar. Calculado como sqrt(4*Area/pi).2-D solamente
'EulerNumber'Número de objetos en la región menos el número de taladros de esos objetos, devueltos como escalares. Esta propiedad sólo se admite para matrices de etiquetas 2-D. regionprops utiliza 8-conectividad para calcular la medición del número de Euler. Para obtener más información acerca de la conectividad, consulte Pixel Connectivity.2-D solamenteNo
'Extent'Proporción de píxeles de la región a píxeles en el cuadro delimitador total, devuelto como escalar. Calculado como el Area dividido por el área de la caja de delimitación.2-D solamente
'Extrema'

Puntos extremos en la región, devueltos como una matriz de 8 por 2. Cada fila de la matriz contiene las coordenadas xy yde uno de los puntos. El formato del vector es [top-left top-right right-top right-bottom bottom-right bottom-left left-bottom left-top]. Esta figura ilustra el extremo de dos regiones diferentes. En la región de la izquierda, cada punto extremo es distinto. En la región a la derecha, ciertos puntos extremos (por ejemplo, top-left y left-top) son idénticos.

2-D solamente
'FilledArea'Número de píxeles on en FilledImage, devueltos como escalar.No
'FilledImage'

Imagen del mismo tamaño que la caja delimitadora de la región, devuelta como una matriz binaria (logical). Los píxeles on corresponden a la región, con todos los orificios rellenados, como se muestra en esta figura.

No
'Image'Imagen del mismo tamaño que la caja delimitadora de la región, devuelta como una matriz binaria (logical). Los píxeles on corresponden a la región y todos los demás píxeles son off.
'MajorAxisLength'Longitud (en píxeles) del eje principal de la elipse que tiene los mismos momentos centrales normalizados segundos como la región, devuelto como escalar.2-D solamente
'MinorAxisLength'Longitud (en píxeles) del eje menor de la elipse que tiene los mismos segundos momentos centrales normalizados como la región, devuelto como escalar.2-D solamente
'Orientation'

Ángulo entre el eje xy el eje principal de la elipse que tiene los mismos segundos momentos que la región, devuelto como escalar. El valor es en grados, que van desde-90 grados a 90 grados. Esta figura ilustra los ejes y la orientación de la elipse. El lado izquierdo de la figura muestra una región de imagen y su elipse correspondiente. El lado derecho muestra la misma elipse con las líneas azules sólidas que representan los ejes. Los puntos rojos son los focos. La orientación es el ángulo entre la línea punteada horizontal y el eje principal.

2-D solamente
'Perimeter'

Distancia alrededor del límite de la región. regresó como un escalar. regionprops calcula el perímetro calculando la distancia entre cada par de píxeles adyacentes alrededor del borde de la región. Si la imagen contiene regiones no contiguas, regionprops devuelve resultados inesperados. Esta figura ilustra los píxeles incluidos en el cálculo perimetral de este objeto.

2-D solamente
'PixelIdxList'Índices lineales de los píxeles de la región, devueltos como un vector de elemento p.
'PixelList'Ubicaciones de píxeles en la región, devueltas como una matriz p-por-Q . Cada fila de la matriz tiene la forma [x y z ...] y especifica las coordenadas de un píxel en la región.
'Solidity'Proporción de los píxeles en el casco convexo que también se encuentran en la región, devueltos como escalares. Calculado como Area/ConvexArea.2-D solamenteNoNo
'SubarrayIdx'Elementos de L dentro del cuadro delimitador de objetos, devueltos como una matriz de celdas que contiene índices tales que L(idx{:}) extrae los elementos.No

Las propiedades de medición de valor de píxel de la tabla siguiente son válidas sólo cuando se especifica una imagen en escala de grises, I.

Mediciones de valor de píxel

Nombre de la propiedad DescripciónSoporte de N-DSoporte de GPUGeneración de código
'MaxIntensity'Valor del píxel con mayor intensidad en la región, devuelto como escalar.
'MeanIntensity'Medio de todos los valores de intensidad en la región, devueltos como escalar.
'MinIntensity'Valor del píxel con la intensidad más baja de la región, devuelto como escalar.
'PixelValues'Número de píxeles de la región, devueltos como un vector p-por-1, donde p es el número de píxeles de la región. Cada elemento del vector contiene el valor de un píxel en la región.
'WeightedCentroid'Centro de la región basado en el valor de la localización y de la intensidad, vuelto como vector p-por-Q de coordenadas. El primer elemento de WeightedCentroid es la coordenada horizontal (o x-coordenada) del centroide ponderado. El segundo elemento es la coordenada vertical (o y-coordenada). Todos los demás elementos de WeightedCentroid están en orden de dimensión.

Tipos de datos: char | string | cell

Componentes conectados, especificados como una estructura devuelta por bwconncomp.

Tipos de datos: struct

Matriz de etiquetas, especificada como una matriz numérica real, no Sparse. L puede tener cualquier clase numérica y cualquier dimensión. regionprops trata los píxeles con valor negativo como fondo y redondea los píxeles de entrada que no son enteros. Los elementos enteros positivos de L corresponden a diferentes regiones. El conjunto de elementos de L igual a 1 corresponde a la región 1. El conjunto de elementos de L igual a 2 corresponde a la región 2, y así sucesivamente.

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

Imagen que se medirá, especificada como imagen en escala de grises.

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

Tipo devuelto, especificado como cualquiera de los siguientes valores:

ValorDescripción
'struct'Devuelve una matriz de estructuras con longitud igual al número de objetos en BW, CC.NumObjectso max(L(:)). Los campos de la matriz de estructura denotan propiedades diferentes para cada región, según lo especificado por properties. Si no especifica este argumento, regionprops devuelve una estructura de forma predeterminada.
'table'

Devuelve una tabla de MATLAB con altura (número de filas) igual al número de objetos en BW, CC.NumObjectso max(L(:)). Las variables (columnas) denotan diferentes propiedades para cada región, según lo especificado por properties. Para obtener más información sobre las tablas de MATLAB, consulte table.

No se admite en una GPU.

Tipos de datos: char | string

Imagen de entrada, especificada como logical gpuArray de 2-D o matriz de etiquetas gpuArray.

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

Argumentos de salida

contraer todo

Valores de medición, devueltos como una matriz de estructuras o una tabla. El número de estructuras en la matriz, o el número de filas de la tabla, corresponde al número de objetos de BW, CC.NumObjectso max(L(:)). Los campos de cada estructura, o las variables de cada fila, denotan las propiedades calculadas para cada región, según lo especificado por properties.

Cuando se ejecuta en una GPU, regionprops sólo puede devolver matrices struct.

Sugerencias

  • La función ismember es útil con regionprops, bwconncompy labelmatrix para crear una imagen binaria que contenga sólo objetos o regiones que cumplan determinados criterios. Por ejemplo, estos comandos crean una imagen binaria que contiene sólo las regiones cuyo área es mayor que 80 y cuya excentricidad es menor que 0,8.

    cc = bwconncomp(BW);  stats = regionprops(cc, 'Area','Eccentricity');  idx = find([stats.Area] > 80 & [stats.Eccentricity] < 0.8);  BW2 = ismember(labelmatrix(cc), idx);   
  • La sintaxis de lista separada por comas para matrices de estructura es útil cuando se trabaja con la salida de regionprops. Para un campo que contiene un escalar, puede utilizar esta sintaxis para crear un vector que contenga el valor de este campo para cada región de la imagen. Por ejemplo, si stats es un array de estructura con Areade campo, entonces la siguiente expresión:

    stats(1).Area, stats(2).Area, ..., stats(end).Area 

    equivale a:

    stats.Area 

    Por lo tanto, puede utilizar estas llamadas para crear un vector que contenga el área de cada región de la imagen. allArea es un vector de la misma longitud que el array de estructura stats.

    stats = regionprops(L, 'Area'); allArea = [stats.Area]; 
  • Las funciones bwlabel, bwlabelny bwconncomp calculan todos los componentes conectados para las imágenes binarias. bwconncomp sustituye el uso de bwlabel y bwlabeln. Utiliza menos memoria y a veces es más rápido que las otras funciones.

    FunciónDimensión de la entradaFormulario de salidaUso de memoriaConectividad
    bwlabel2-DMatriz de etiquetas con doble precisiónAlta4 o 8
    bwlabelnN-DMatriz de etiquetas de doble precisiónAltaCualquier
    bwconncompN-DCC structBajaCualquier

    La salida de bwlabel y bwlabeln es una matriz de etiqueta de doble precisión. Para calcular una matriz de etiquetas utilizando un tipo de datos más eficiente para la memoria, utilice la función labelmatrix en la salida de bwconncomp:

    CC = bwconncomp(BW); L = labelmatrix(CC);

    Si está midiendo componentes en una imagen binaria con conectividad predeterminada, ya no es necesario llamar primero a bwlabel o bwlabeln . Puede pasar la imagen binaria directamente a regionprops, que luego utiliza la función bwconncomp de memoria eficiente para calcular los componentes conectados automáticamente. Para especificar la conectividad no predeterminada, llame a bwconncomp y pase el resultado a regionprops.

    CC = bwconncomp(BW, CONN); S = regionprops(CC);
  • La mayoría de las mediciones tardan poco tiempo en calcularse. Sin embargo, las siguientes mediciones pueden durar más, dependiendo del número de regiones en L:

    • 'ConvexHull'

    • 'ConvexImage'

    • 'ConvexArea'

    • 'FilledImage'

  • La informática de determinados grupos de mediciones toma aproximadamente la misma cantidad de tiempo que la informática sólo una de ellas. regionprops toma ventaja de los cómputos intermedios útiles a cada cómputo. Por lo tanto, es más rápido calcular todas las mediciones deseadas en una sola llamada a regionprops.

Algoritmos

Las regiones contiguas también se denominan Objetos, componentes conectadoso Blobs. Una matriz de etiquetas que contenga regiones contiguas podría verse así:

1 1 0 2 2 0 3 3 1 1 0 2 2 0 3 3
Los elementos de L igual a 1 pertenecen a la primera región contigua o al componente conectado; los elementos de L igual a 2 pertenecen al segundo componente conectado; y así sucesivamente.

Las regiones no contiguas son regiones que pueden contener varios componentes conectados. Una matriz de etiquetas que contenga regiones no contiguas podría verse así:

1 1 0 1 1 0 2 2 1 1 0 1 1 0 2 2
Los elementos de L igual a 1 pertenecen a la primera región, la cual es discontigua y contiene dos componentes conectados. Los elementos de L igual a 2 pertenecen a la segunda región, que es un único componente conectado.

Capacidades ampliadas

Introducido antes de R2006a