regionprops
Medir propiedades de regiones de imágenes
Sintaxis
Descripción
La función regionprops mide propiedades como el área, los centroides y el cuadro delimitador de cada uno de los objetos (componentes conectados) de una imagen. regionprops es compatible con las regiones contiguas y no contiguas.
regionprops encuentra objetos únicos en imágenes binarias utilizando entornos de conectividad 8 para imágenes 2D y una conectividad máxima para imágenes de una dimensión superior. Para obtener más información, consulte Conectividad de píxeles. Para encontrar objetos utilizando otros tipos de conectividad, utilice bwconncomp para crear los componentes conectados y luego pase el resultado a regionprops utilizando el argumento CC.
Nota
Para medir las propiedades de los objetos de una imagen volumétrica 3D, considere utilizar regionprops3. Aunque regionprops puede aceptar imágenes 3D, regionprops3 es compatible con más estadísticas para las imágenes 3D.
Al llamar a la función regionprops, omita el argumento properties y la función devolverá las mediciones de "Area", "Centroid" y "BoundingBox".
mide las propiedades de cada uno de los objetos de la imagen binaria stats = regionprops(BW,properties)BW.
mide las propiedades de cada componente conectado stats = regionprops(CC,properties)CC.
mide las propiedades para cada región etiquetada en la imagen de etiqueta stats = regionprops(L,properties)L.
especifica el formato de las mediciones devueltas como un arreglo de estructuras o una tabla, utilizando el argumento stats = regionprops(outputFormat,___)outputFormat.
Ejemplos
Lea una imagen binaria en el área 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

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 área de trabajo.
a = imread("circlesBrightDark.png");Convierta la imagen de entrada en una imagen binaria.
bw = a < 50;
imshow(bw)
title("Image with Circles")
Calcule las propiedades de las regiones en la imagen y devuelva los datos en una tabla.
stats = regionprops("table",bw,"Centroid", ... "MajorAxisLength","MinorAxisLength")
stats=3×3 table
Centroid MajorAxisLength MinorAxisLength
________________ _______________ _______________
300 120 79.517 79.517
330.29 369.92 109.49 108.6
450 240 99.465 99.465
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)ans =
Group with properties:
Children: [2×1 Line]
Visible: on
HitTest: on
Show all properties
hold off
Lea una imagen binaria y detecte los componentes conectados.
BW = imread("text.png");
CC = bwconncomp(BW);Mida el área de cada componente conectado y devuelva los resultados como una tabla.
p = regionprops("table",CC,"Area");
Cree una imagen binaria que contenga únicamente los componentes conectados más grandes del 2.º al 10.º. Muestre el resultado.
[~,idx] = sort(p.Area,"descend");
BWfilt = cc2bw(CC,ObjectsToKeep=idx(2:10));
imshow(BWfilt)
Lea una imagen en escala de grises de granos de arroz y, después, convierta la imagen a binaria.
I = imread("rice.png");
BW = imbinarize(I);
imshow(BW)
Mida el área y el cuadro delimitador de cada región.
CC = bwconncomp(BW); stats = regionprops("table",CC,"Area","BoundingBox");
Seleccione las regiones a las que se aplican estas condiciones:
El área es superior a 50 píxeles.
El cuadro delimitador tiene menos de 15 píxeles de ancho y una altura superior o igual a 20 píxeles.
area = stats.Area; bbox = stats.BoundingBox; selection = (area > 50) & (bbox(:,3) < 15) & (bbox(:,4) >= 20); BW2 = cc2bw(CC,ObjectsToKeep=selection);
Muestre la imagen filtrada.
imshow(BW2)

Argumentos de entrada
Imagen binaria, especificada como arreglo de cualquier dimensión.
regionprops ordena los objetos de la imagen binaria de izquierda a derecha en función del extremo top-left de cada componente. Cuando varios objetos tienen la misma posición horizontal, la función ordena esos objetos de arriba abajo y de nuevo a lo largo de cualquier dimensión superior. regionprops devuelve las propiedades medidas, stats, en el mismo orden que los objetos ordenados.
Tipos de datos: logical
Componentes conectados, especificados como estructura con cuatro campos. Puede obtener una estructura de componentes conectados utilizando la función bwconncomp o bwpropfilt.
| Campo | Descripción |
|---|---|
Connectivity | Conectividad de los componentes conectados (objetos) |
ImageSize | Tamaño de la imagen binaria |
NumObjects | Número de componentes conectados (objetos) en la imagen binaria |
PixelIdxList | Arreglo de celdas de 1 por NumObjects donde el k-ésimo elemento del arreglo de celdas es un vector que contiene los índices lineales de los píxeles del k-ésimo objeto |
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
0son el fondo. Los píxeles etiquetados como1forman un objeto; los píxeles etiquetados como2forman un segundo objeto; y así sucesivamente.regionpropstrata 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 comowatershedolabelmatrix.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",regionpropscalcula 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",regionpropssolo 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 propiedad | Descripción | Compatibilidad con N-D | Compatibilidad con GPU | Generació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 Para encontrar el equivalente al área de un volumen 3D, utilice la propiedad | Sí | Sí | Sí | ||||||||
"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 | Sí | Sí | Sí | ||||||||
"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 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.
| Sí | Sí | Sí | ||||||||
"Circularity" | Redondez de los objetos, devuelta como estructura con el campo
El valor de circularidad máximo es 1. La entrada debe ser una matriz de etiquetas o una imagen binaria con regiones contiguas. Si la imagen contiene regiones discontinuas, | Solo 2D | No | Sí | ||||||||
"ConvexArea" | Número de píxeles en ConvexImage, devuelto como un escalar. | Solo 2D | No | No | ||||||||
"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 2D | No | No | ||||||||
"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 2D | No | No | ||||||||
"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 recta) | Solo 2D | Sí | Sí | ||||||||
"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 | Sí | Sí | ||||||||
"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 Conectividad de píxeles. | Solo 2D | No | Sí | ||||||||
"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 | Sí | Sí | ||||||||
"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 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
| Solo 2D | Sí | Sí | ||||||||
"FilledArea" | Número de píxeles on en FilledImage, devuelto como un escalar. | Sí | No | Sí | ||||||||
"FilledImage" | Imagen del mismo tamaño que el cuadro delimitador de la región, devuelta como un arreglo binario. Los píxeles
| Sí | No | Sí | ||||||||
"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. | Sí | Sí | Sí | ||||||||
"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 | Sí | Sí | ||||||||
"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:
La entrada puede ser una imagen binaria, un componente conectado o una matriz de etiquetas. | Solo 2D | No | No | ||||||||
"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:
La entrada puede ser una imagen binaria, un componente conectado o una matriz de etiquetas. | Solo 2D | No | No | ||||||||
"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 | Sí | Sí | ||||||||
"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.
| Solo 2D | Sí | Sí | ||||||||
"Perimeter" | Distancia alrededor del límite de la región devuelta como un escalar.
| Solo 2D | No | Sí | ||||||||
"PixelIdxList" | Índices lineales de los píxeles de la región, devueltos como un vector de p elementos. | Sí | Sí | Sí | ||||||||
"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. | Sí | Sí | Sí | ||||||||
"Solidity" | Proporción de los píxeles en la envolvente convexa que también están en la región, devuelta como un escalar. La solidez se calcula como
| Solo 2D | No | No | ||||||||
"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. | Sí | Sí | 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ón | Compatibilidad con N-D | Compatibilidad con GPU | Generación de código |
|---|---|---|---|---|
"MaxIntensity" | Valor del píxel con la mayor intensidad en la región, devuelto como un escalar. | Sí | Sí | Sí |
"MeanIntensity" | Media de todos los valores de intensidad de la región, devuelta como un escalar. | Sí | Sí | Sí |
"MinIntensity" | Valor del píxel con la menor intensidad de la región, devuelto como un escalar. | Sí | Sí | Sí |
"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. | Sí | Sí | Sí |
"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. | Sí | Sí | Sí |
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
Formato de salida de los valores de medición stats, especificado como uno de los valores siguientes.
| Valor | Descripción |
|---|---|
"struct" | Devuelve un arreglo de estructuras con una longitud igual al número de objetos en BW, o max(. Los campos del arreglo de estructuras denotan diferentes propiedades para cada región, como se especifica en properties. |
"table" | Devuelve una |
Tipos de datos: char | string
Argumentos de salida
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".
El orden de los valores de medición de stats es el mismo que los objetos ordenados en la imagen binaria BW o los objetos ordenados especificados por CC o L.
Más acerca de
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
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
regionpropsaprovecha 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 aregionprops.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"
La función
cc2bwes útil para crear una imagen binaria que contenga solo un subconjunto de objetos o regiones que cumplan determinados criterios.
Capacidades ampliadas
Notas y limitaciones de uso:
regionpropses compatible con la generación de código C (requiere MATLAB® Coder™). Tenga en cuenta que, si selecciona la plataforma objetivo genéricaMATLAB Host Computer,regionpropsgenera código que utiliza una biblioteca compartida precompilada específica de la plataforma. El uso de una biblioteca compartida mantiene las optimizaciones de rendimiento, pero limita las plataformas objetivo para las que se puede generar código. Para obtener más información, consulte Types of Code Generation Support in Image Processing Toolbox.Solo se admiten imágenes binarias o imágenes de etiqueta numéricas. Las imágenes de etiqueta de tipo de datos categóricos no se admiten como entrada.
No se admite especificar el tipo de salida
"table".No se admite pasar un arreglo de celdas de propiedades. Utilice en su lugar una lista separada por comas.
Se admiten todas las propiedades excepto
"ConvexArea","ConvexHull","ConvexImage","MaxFeretProperties","MinFeretProperties","Solidity"y"SubarrayIdx".
Notas y limitaciones de uso:
GPU Coder™ genera código optimizado CUDA® solo para imágenes binarias. El código generado para imágenes de etiqueta como entrada no está optimizado. Las imágenes de etiqueta de tipo de datos categóricos no se admiten como entrada.
No se admite especificar el tipo de salida
"table".No se admite pasar un arreglo de celdas de propiedades. Utilice en su lugar una lista separada por comas.
Solo se admiten las propiedades
"Area","BoundingBox","Centroid","Eccentricity","EquivDiameter","Extent","MajorAxisLength","MinorAxisLength","Orientation","PixelIdxList""PixelList","MaxIntensity","MeanIntensity","MinIntensity","PixelValues"y"WeightedCentroid".
Esta función es totalmente compatible con los entornos basados en hilos. Para obtener más información, consulte Ejecutar funciones de MATLAB en entornos basados en subprocesos.
Notas y limitaciones de uso:
La entrada
gpuArraydebe ser una matriz lógica 2D o matriz de etiquetas 2D.No se admite la estructura de componentes conectados (
CC) de entrada.No se admiten las siguientes propiedades:
"ConvexArea","ConvexHull","ConvexImage","Circularity","EulerNumber","FilledArea","FilledImage","MaxFeretProperties","MinFeretProperties", y"Solidity"."struct"es el único tipo de retorno admitido.
Para obtener más información, consulte Procesamiento de imágenes en una GPU.
Historial de versiones
Introducido antes de R2006aLa función regionprops utiliza una nueva ecuación para calcular la circularidad. La nueva ecuación elimina un sesgo que provocaba que el cálculo de la circularidad fuese demasiado alto para objetos relativamente pequeños.
Si desea reproducir mediciones de circularidad con la antigua ecuación, puede utilizar estos comandos:
props = regionprops(I,["Area" "Perimeter"]); oldCircularity = 4*pi*props.Area ./ props.Perimeter.^2;
Ahora regionprops es compatible con los entornos basados en hilos.
A partir de R2022a, cuando se especifica un formato de salida de tabla, la función regionprops almacena Image, ConvexImage y FilledImage como arreglos de celdas, independientemente del tamaño de los objetos de imagen. En versiones anteriores, si el tamaño del cuadro delimitador de un objeto era de 1 por 1 o de 1 por n, estas propiedades se almacenaban en la tabla de salida como un escalar numérico o un vector fila.
Para actualizar su código, acceda al valor de Image, ConvexImage y FilledImage utilizando la notación de puntos con llaves, {}. Por ejemplo, utilice el siguiente código para acceder a la propiedad Image del primer objeto de la imagen de entrada BW. En versiones anteriores, las llaves no eran necesarias para acceder a los valores almacenados como un escalar numérico o un vector fila.
stats = regionprops("table",BW,"Image"); imdata = stats.Image{1};
Ahora, regionprops es compatible con datos de imágenes categóricas.
Ahora, regionprops mide la circularidad y las propiedades de Feret de las regiones de una imagen binaria. Para medir la circularidad, las propiedades de Feret mínimas y las propiedades de Feret máximas, incluya "Circularity", "MinFeretProperties" o "MaxFeretProperties", respectivamente, al especificar el argumento properties.
Consulte también
Image Region Analyzer | regionprops3 | bwpropfilt | bwconncomp | bwferet | watershed | labelmatrix
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)



