Main Content

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.

regionprops

Medir propiedades de regiones de imágenes

Descripción

ejemplo

stats = regionprops(BW,properties) devuelve las mediciones del conjunto de propiedades de cada componente (objeto) de conectividad 8 en la imagen binaria, BW. Puede utilizar regionprops en regiones contiguas y en regiones discontinuas (consulte Más acerca de).

Nota

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

Para todas las sintaxis, puede omitir el argumento properties. En este caso regionprops devuelve las mediciones "Area", "Centroid" y "BoundingBox".

stats = regionprops(CC,properties) mide un conjunto de propiedades para cada componente conectado (objeto) en CC, que es una estructura devuelta por bwconncomp.

stats = regionprops(L,properties) mide un conjunto de propiedades para cada región etiquetada en la imagen de la etiqueta L.

stats = regionprops(___,I,properties) devuelve las mediciones del conjunto de propiedades especificadas por properties para cada región etiquetada de la imagen I. La primera entrada en regionprops (BW, CC, o L) identifica las regiones en I.

ejemplo

stats = regionprops(output,___) devuelve las mediciones de un conjunto de propiedades, donde output especifica el formato de las mediciones devueltas como un arreglo de estructuras o una tabla.

Ejemplos

contraer todo

Lea una imagen binaria en el espacio de trabajo.

BW = imread('text.png');

Calcule los centroides para los componentes conectados de la imagen mediante regionprops. La función regionprops devuelve los centroides en un arreglo de estructuras.

s = regionprops(BW,'centroid');

Guarde las coordenadas x e y de los centroides en una matriz de dos columnas.

centroids = cat(1,s.Centroid);

Muestre la imagen binaria con las ubicaciones de los centroides superpuestas.

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

Figure contains an axes object. The axes object contains 2 objects of type image, line.

Estime el centro y los radios de los objetos circulares en una imagen y utilice esta información para representar círculos en la imagen. En este ejemplo, regionprops devuelve las propiedades de la región medidas en una tabla.

Lea una imagen en el espacio de trabajo.

a = imread('circlesBrightDark.png');

Convierta la imagen de entrada en una imagen binaria.

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

Figure contains an axes object. The axes object with title Image with Circles contains an object of type image.

Calcule las propiedades de las regiones en 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     

Obtenga los centros y los radios de los círculos.

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

Represente los círculos.

hold on
viscircles(centers,radii);
hold off

Figure contains an axes object. The axes object with title Image with Circles contains 3 objects of type line, image.

Argumentos de entrada

contraer todo

Imagen binaria, especificada como arreglo de cualquier dimensión.

Tipos de datos: logical

Componentes conectados, especificados como una estructura devuelta por bwconncomp.

Tipos de datos: struct

Imagen de la etiqueta, especificada como uno de los siguientes:

  • Un arreglo numérico de cualquier dimensión. Los píxeles etiquetados como 0 son el fondo. Los píxeles etiquetados como 1 forman un objeto; los píxeles etiquetados como 2 forman un segundo objeto; y así sucesivamente. regionprops trata los píxeles con valores negativos como fondo y redondea hacia abajo los píxeles de entrada que no sean enteros. Puede obtener una imagen de etiqueta numérica a partir de funciones de etiquetado como watershed o labelmatrix.

  • Un arreglo categórico. Cada categoría corresponde a una región diferente.

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

Tipo de medición, especificado como una lista separada por comas de escalares de cadena o vectores de caracteres, un arreglo de escalares de cadena, un arreglo de celdas de vectores de caracteres, o como "all" o "basic".

  • Si especifica "all", regionprops calcula todas las mediciones de la forma y, para las imágenes en escala de grises, también las mediciones del valor de los píxeles.

  • Si especifica "basic", regionprops solo calcula las mediciones "Area", "Centroid" y "BoundingBox".

Las siguientes tablas enumeran todas las propiedades que proporcionan mediciones de la forma. Las propiedades que aparecen en la tabla Mediciones del valor de los píxeles solo son válidas cuando se especifica una imagen en escala de grises.

Mediciones de forma

Nombre de la propiedadDescripciónCompatibilidad con N-DCompatibilidad con GPUGeneración de código
"Area"

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

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

"BoundingBox"

Posición y tamaño del cuadro más pequeño que contiene la región, devueltos como un vector de 1 por (2*Q), donde Q es la dimensionalidad de la imagen. Los primeros elementos Q son las coordenadas de la esquina mínima del cuadro. Los segundos elementos Q son el tamaño del cuadro a lo largo de cada dimensión. Por ejemplo, un cuadro delimitador 2D con valor [5.5 8.5 11 14] indica que la coordenada (x,y) de la esquina superior izquierda del cuadro es (5,5, 8,5), la anchura horizontal del cuadro es de 11 píxeles y la altura vertical del cuadro es de 14 píxeles.

"Centroid"

Centro de masa de la región, devuelto como un vector de 1 por Q, donde Q es la dimensionalidad de la imagen. El primer elemento de Centroid es la coordenada horizontal (o coordenada x) del centro de masa. El segundo elemento es la coordenada vertical (o coordenada y). Todos los otros elementos de Centroid se encuentran en orden de dimensión.

Esta figura ilustra el centroide y el cuadro delimitador de una región discontinua. La región está formada por los píxeles blancos. El recuadro verde es el cuadro delimitador y el punto rojo es el centroide.

Centroid is within the bounding box encompassing a region.

"Circularity"

Redondez de los objetos, devuelta como estructura con el campo Circularity. La estructura contiene el valor de circularidad de cada objeto de la imagen de entrada. El valor de circularidad se calcula como (4*Area*pi)/(Perimeter2). Para un círculo perfecto, el valor de circularidad es 1. La entrada debe ser una matriz de etiquetas o una imagen binaria con regiones contiguas. Si la imagen contiene regiones discontinuas, regionprops devuelve resultados inesperados.

Nota

Circularity no se recomienda para objetos muy pequeños, como un cuadrado de 3 por 3. En estos casos, los resultados pueden superar el valor de circularidad de un círculo perfecto.

Solo 2DNo
"ConvexArea"Número de píxeles en ConvexImage, devuelto como un escalar.Solo 2DNoNo
"ConvexHull"El polígono convexo más pequeño que puede contener la región, devuelto como una matriz de p por 2. Cada fila de la matriz contiene las coordenadas x e y de un vértice del polígono.Solo 2DNoNo
"ConvexImage"Imagen que especifica la envolvente convexa, con todos los píxeles dentro de la envolvente rellenados (establecidos en on), devuelta como imagen binaria. La imagen tiene el tamaño del cuadro delimitador de la región. Para los píxeles por los que pasa el límite de la envolvente, regionprops utiliza el algoritmo descrito en Classify Pixels That Are Partially Enclosed by ROI.Solo 2DNoNo
"Eccentricity"Excentricidad de la elipse que tiene los mismos segundos momentos que la región, devuelta como escalar. La excentricidad es la relación entre la distancia entre los focos de la elipse y la longitud de su eje mayor. El valor está comprendido 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)Solo 2D
"EquivDiameter"Diámetro de un círculo con la misma área que la región, devuelto como un escalar. Calculado como sqrt(4*Area/pi).Solo 2D
"EulerNumber"Número de objetos en la región menos el número de huecos en esos objetos, devuelto como un escalar. Esta propiedad solo es compatible con las matrices de etiquetas 2D. regionprops utiliza la conectividad 8 para calcular el número de Euler (también conocido como la característica de Euler). Para obtener más información sobre la conectividad, consulte Pixel Connectivity.Solo 2DNo
"Extent"Relación entre los píxeles de la región y los píxeles del cuadro delimitador total, devuelta como un escalar. Se calcula como el Area dividida por el área del cuadro delimitador.Solo 2D
"Extrema"

Puntos extremos en la región, devueltos como una matriz de 8 por 2. Cada fila de la matriz contiene las coordenadas x e y de 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]. Para algunas formas, varios puntos extremos pueden tener coordenadas idénticas.

Esta figura ilustra los extremos de dos regiones diferentes. En la región de la izquierda, cada punto extremo es distinto. Para la región de la derecha, ciertos puntos extremos (como top-left y left-top) son idénticos.

Two differently shaped regions, each with their eight extrema points labeled

Solo 2D
"FilledArea"Número de píxeles on en FilledImage, devuelto como un escalar.No
"FilledImage"

Imagen del mismo tamaño que el cuadro delimitador de la región, devuelto como un arreglo binario. Los píxeles on corresponden a la región, con todos los huecos rellenos, como se muestra en esta figura.

Comparison of original region consisting of touching circles with filled region in which holes are filled.

No
"Image"Imagen del mismo tamaño que el cuadro delimitador de la región, devuelta como un arreglo binario. Los píxeles on corresponden a la región, y todos los demás píxeles están off.
"MajorAxisLength"Longitud (en píxeles) del eje mayor de la elipse que tiene los mismos segundos momentos centrales normalizados que la región, devuelta como un escalar.Solo 2D
"MaxFeretProperties"

Propiedades de Feret que incluyen el diámetro máximo de Feret, su ángulo relativo y los valores de las coordenadas, devueltas como una estructura con los campos:

CampoDescripción
MaxFeretDiameterDiámetro máximo de Feret medido como la distancia máxima entre dos puntos cualesquiera de los vértices en los polos opuestos de la envolvente convexa que encierra el objeto.
MaxFeretAngleÁngulo del diámetro máximo de Feret con respecto al eje horizontal de la imagen.
MaxFeretCoordinatesCoordenadas del punto final del diámetro máximo de Feret.

La entrada puede ser una imagen binaria, un componente conectado o una matriz de etiquetas.

Solo 2DNoNo
"MinFeretProperties"

Propiedades de Feret que incluyen el diámetro mínimo de Feret, su ángulo relativo y los valores de las coordenadas, devueltas como una estructura con los campos:

CampoDescripción
MinFeretDiameterDiámetro mínimo de Feret medido como la distancia mínima entre dos puntos cualesquiera de los vértices en los polos opuestos de la envolvente convexa que encierra el objeto.
MinFeretAngleÁngulo del diámetro mínimo de Feret con respecto al eje horizontal de la imagen.
MinFeretCoordinatesCoordenadas del punto final del diámetro mínimo de Feret.

La entrada puede ser una imagen binaria, un componente conectado o una matriz de etiquetas.

Solo 2DNoNo
"MinorAxisLength"Longitud (en píxeles) del eje menor de la elipse que tiene los mismos segundos momentos centrales normalizados que la región, devuelta como un escalar.Solo 2D
"Orientation"

Ángulo entre el eje x y el eje mayor de la elipse que tiene los mismos segundos momentos que la región, devuelto como un escalar. El valor se muestra en grados, y está comprendido entre -90 grados y 90 grados. Esta figura ilustra los ejes y la orientación de la elipse. La parte izquierda de la figura muestra una región de la imagen y su correspondiente elipse. 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 de puntos horizontal y el eje mayor.

Axes and orientation of ellipse surrounding an image region

Solo 2D
"Perimeter"

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

Perimeter pixels of a region

Solo 2DNo
"PixelIdxList"Índices lineales de los píxeles de la región, devueltos como un vector de p elementos.
"PixelList"Ubicación de los píxeles en la región, devuelta como una matriz de p por Q. Cada fila de la matriz tiene la forma [x y z ...] y especifica las coordenadas de un píxel de la región.
"Solidity"Proporción de los píxeles en la envolvente convexa que también están en la región, devuelta como un escalar. Calculada como Area/ConvexArea.Solo 2DNoNo
"SubarrayIdx"Los elementos de L dentro del cuadro delimitador del objeto, devueltos como un arreglo de celdas que contiene índices tales que L(idx{:}) extrae los elementos.No

Las propiedades de medición del valor de los píxeles de la siguiente tabla solo son válidas cuando se especifica una imagen en escala de grises, I.

Mediciones del valor de los píxeles

Nombre de la propiedad DescripciónCompatibilidad con N-DCompatibilidad con GPUGeneración de código
"MaxIntensity"Valor del píxel con la mayor intensidad en la región, devuelto como un escalar.
"MeanIntensity"Media de todos los valores de intensidad de la región, devuelta como un escalar.
"MinIntensity"Valor del píxel con la menor intensidad de la región, devuelto como un escalar.
"PixelValues"Número de píxeles en la región, devuelto como un vector de 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 de la región.
"WeightedCentroid"Centro de la región basado en la ubicación y el valor de la intensidad, devuelto como un vector de p por Q de coordenadas. El primer elemento de WeightedCentroid es la coordenada horizontal (o coordenada x) del centroide ponderado. El segundo elemento es la coordenada vertical (o coordenada y). Todos los otros elementos de WeightedCentroid se encuentran en orden de dimensión.

Tipos de datos: char | string | cell

Imagen que se desea medir, especificada como una imagen en escala de grises. El tamaño de la imagen debe coincidir con el tamaño de la imagen binaria BW, de la estructura de componentes conectados CC o de la imagen de la etiqueta L.

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

Tipo de retorno, especificado como uno de los siguientes valores.

ValorDescripción
"struct"Devuelve un arreglo de estructuras con una longitud igual al número de objetos en BW, CC.NumObjects o max(L(:)). Los campos del arreglo de estructuras denotan diferentes propiedades para cada región, como se especifica en properties.
"table"

Devuelve una table con altura (número de filas) igual al número de objetos en BW, CC.NumObjects o max(L(:)). Las variables (columnas) denotan diferentes propiedades para cada región, como se especifica en properties.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Valores de medición, devueltos como un arreglo de estructuras o una tabla. El número de estructuras en el arreglo o el número de filas en la tabla es igual al número de objetos en BW, CC.NumObjects, o max(L(:)). Los campos de cada estructura o las variables de cada fila denotan las propiedades calculadas para cada región, como se especifica en properties. Si la imagen de entrada es una imagen de etiqueta categórica L, stats incluye un campo o variable adicional con la propiedad "LabelName".

Más acerca de

contraer todo

Regiones contiguas y regiones discontinuas

Las regiones contiguas también se denominan objetos, componentes conectados o blobs. Una imagen de etiqueta L que contenga regiones contiguas podría tener este aspecto:

1 1 0 2 2 0 3 3
1 1 0 2 2 0 3 3

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

Las regiones discontinuas son regiones que pueden contener varios componentes conectados. Una imagen de etiqueta que contenga regiones discontinuas podría tener este aspecto:

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

Sugerencias

  • La función ismember es útil para crear una imagen binaria que contenga solo objetos o regiones que cumplan ciertos criterios. Por ejemplo, estos comandos crean una imagen binaria que contiene solo las regiones cuya área es superior a 80 y cuya excentricidad es inferior a 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 conectividad predeterminada es conectividad 8 para imágenes 2D y la conectividad máxima para imágenes 3D. Para especificar una conectividad no predeterminada, utilice bwconncomp para crear los componentes conectados y luego pase el resultado a regionprops.

  • regionprops aprovecha los resultados intermedios al calcular las mediciones relacionadas. Por lo tanto, es más rápido calcular todas las mediciones deseadas en una sola llamada a regionprops.

  • La mayoría de las mediciones requieren poco tiempo para calcularse. Sin embargo, estas mediciones pueden llevar más tiempo, dependiendo del número de regiones en L:

    • "ConvexHull"

    • "ConvexImage"

    • "ConvexArea"

    • "FilledImage"

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo