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

Mida las propiedades de las regiones de imagen

Descripción

ejemplo

stats = regionprops(BW,properties) Devuelve mediciones para el conjunto de propiedades especificado por cada componente de 8 conectado (objeto) en la imagen binaria,. es struct array que contiene un struct para cada objeto de la imagen.PropiedadesBWstats Puede utilizar en regiones contiguas y regiones no contiguas (véase).regionpropsAlgoritmos

Nota

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

Para todas las sintaxis, si no especifica el argumento, a continuación, devuelve el, y las mediciones.Propiedadesregionprops'Area''Centroid''BoundingBox'

Opcionalmente, puede medir las propiedades de las regiones de imagen usando una GPU (requiere).Parallel Computing Toolbox™ Para obtener más información, consulte.Procesamiento de imágenes en una GPU Las propiedades,,,,,,, y no se admiten en una GPU.'ConvexArea''ConvexHull''ConvexImage''Circularity''EulerNumber''FilledArea''FilledImage''MaxFeretProperties''MinFeretProperties''Solidity'

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

Esta sintaxis no se admite en una GPU.

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

stats = regionprops(___,I,properties) Devuelve mediciones para el conjunto de propiedades especificado por cada región etiquetada de la imagen.PropiedadesI La primera entrada a (,, o) identifica las regiones en.regionpropsBWCCLI

ejemplo

stats = regionprops(output,___) Devuelve mediciones para un conjunto de propiedades, donde especifica el tipo de valor devuelto. puede devolver mediciones en una matriz o una.outputregionpropsstructtable

El valor de salida no se admite en una GPU.'table'

Ejemplos

contraer todo

Leer una imagen binaria en el espacio de trabajo.

BW = imread('text.png');

Calcule los centroides para los componentes conectados en la imagen utilizando.regionprops La función devuelve los centroides en una matriz de estructura.regionprops

s = regionprops(BW,'centroid');

Almacene las coordenadas de los centroides en una matriz de dos columnas.xy

centroids = cat(1,s.Centroid);

Visualice la imagen binaria con las ubicaciones de centroide superpuestas.

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

Leer la imagen binaria en un gpuArray.

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

Calcule los centroides de los objetos de la imagen.

s  = regionprops(BW,'centroid'); 

Trace los centroides en la imagen.

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

Estime 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, devuelve las propiedades de región medida en una tabla.regionprops

Leer 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')

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;

Traza los círculos.

hold on viscircles(centers,radii); hold off

Argumentos de entrada

contraer todo

Imagen binaria, especificada como una matriz lógica de cualquier dimensión.

Para medir las propiedades de las regiones de imagen mediante una GPU, especifique como una que contiene una matriz lógica 2-D.BWgpuArray

Tipos de datos: logical

Componentes conectados, especificados como una estructura devuelta por.bwconncomp

Tipos de datos: struct

Matriz de etiquetas, especificada como una matriz numérica de cualquier dimensión. trata los píxeles con valores negativos como fondo y redondea los píxeles de entrada que no son enteros.regionprops Los elementos enteros positivos corresponden a diferentes regiones.L Por ejemplo, el conjunto de elementos de igual a corresponde a la región 1; el conjunto de elementos de igual a corresponde a la región 2; y así sucesivamente.L1L2

Para medir las propiedades de las regiones de imagen mediante una GPU, especifique como una que contenga una matriz de etiquetas 2-D.LgpuArray

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

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

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

  • Si especifica o no especifica el argumento, solo calcula el, y las mediciones.'basic'Propiedadesregionprops'Area''Centroid''BoundingBox'

En las tablas siguientes se muestra una lista de todas las propiedades que proporcionan mediciones de forma. Las propiedades enumeradas en la tabla solo son válidas cuando se especifica una imagen en escala de grises.Mediciones de valor de píxel

Mediciones de forma

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

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

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

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

Centro de masa de la región, devuelto como un 1-por-Q Vector. El primer elemento de es la coordenada horizontal (o-coordenada) del centro de masa.Centroidx El segundo elemento es la coordenada vertical (o-coordenada).y Todos los demás elementos están en orden de dimensión.Centroid Esta figura ilustra el centroide y el cuadro delimitador para una región discontinua. La región consta de los píxeles blancos; el cuadro verde es el cuadro delimitador, y el punto rojo es el centroide.

'ConvexArea'Número de píxeles en, devuelto como un escalar.'ConvexImage'2-D sóloNoNo
'ConvexHull'Polígono convexo más pequeño que puede contener la región, devuelta como una matriz a-by-2.p Cada fila de la matriz contiene las coordenadas de un vértice del polígono.xy2-D sóloNoNo
'ConvexImage'Imagen que especifica el casco convexo, con todos los píxeles dentro del casco rellenado (establecido en), devueltos como una imagen binaria ().onlogical La imagen es del tamaño del cuadro delimitador de la región. (Para los píxeles a los que pasa el contorno del casco, utiliza la misma lógica para determinar si el píxel está dentro o fuera del casco.)regionpropsroipoly 2-D sóloNoNo
'Circularity'Circularidad que especifica la redondez de los objetos, devuelta como un struct 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, devuelve resultados inesperados.regionpropsCircularity is not recommended for very small objects such as a 3*3 square. For such cases the results might exceed the circularity value for a perfect circle which is 1.2-D sóloNo
'Eccentricity'Excentricidad de la elipse que tiene el mismo segundo momento que la región, devuelta 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 sólo
'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)2-D sólo
'EulerNumber'Número de objetos de la región menos el número de taladros de esos objetos, devueltos como un escalar. Esta propiedad solo se admite para matrices de etiquetas 2-D. utiliza 8-Connectivity para computar la medida del número Euler.regionprops Para obtener más información sobre la conectividad, consulte.Conectividad de píxeles2-D sóloNo
'Extent'Relación de píxeles de la región con píxeles en el cuadro delimitador total, devuelto como un escalar. Calculado como dividido por el área del cuadro delimitador.Area2-D sólo
'Extrema'

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

2-D sólo
'FilledArea'Número de píxeles en, devuelto como un escalar.onFilledImageNo
'FilledImage'

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

No
'Image'Imagen del mismo tamaño que el cuadro delimitador de la región, devuelta como una matriz binaria ().logical Los píxeles corresponden a la región y todos los demás píxeles son.onoff
'MaxFeretProperties'Propiedades de Feret que incluyen el diámetro máximo de Feret, su ángulo relativo y los valores de coordenadas, devueltos como un struct con campos:
FieldDescripción
MaxFeretDiameterDiámetro máximo de Feret medido como la distancia máxima entre dos puntos de contorno en los vértices antipodales del casco convexo que encierran el objeto.
MaxFeretAngleÁngulo del diámetro máximo de Feret con respecto al eje horizontal de la imagen.
MaxFeretCoordinatesCoordenadas de punto final del diámetro máximo de Feret.
La entrada puede ser una imagen binaria, un componente conectado o una matriz de etiquetas.
2-D sóloNoNo
'MinFeretProperties'Propiedades de Feret que incluyen el diámetro mínimo de Feret, su ángulo relativo y los valores de coordenadas, devueltos como struct con campos:
FieldDescripción
MinFeretDiameterDiámetro mínimo de Feret medido como la distancia mínima entre dos puntos de contorno en los vértices antipodales del casco convexo que encierran el objeto.
MinFeretAngleÁngulo del diámetro mínimo de Feret con respecto al eje horizontal de la imagen.
MinFeretCoordinatesCoordenadas de punto final del diámetro mínimo de Feret.
La entrada puede ser una imagen binaria, un componente conectado o una matriz de etiquetas.
2-D sóloNoNo
'MajorAxisLength'Longitud (en píxeles) del eje principal de la elipse que tiene los mismos segundos centrales normalizados que la región, devueltos como un escalar.2-D sólo
'MinorAxisLength'Longitud (en píxeles) del eje menor de la elipse que tiene los mismos segundos centrales normalizados que la región, devueltos como un escalar.2-D sólo
'Orientation'

Ángulo entre el eje y el eje principal de la elipse que tiene el mismo segundo momento que la región, devuelto como un escalar.x El valor está 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 la 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 el foci. La orientación es el ángulo entre la línea de puntos horizontal y el eje principal.

2-D sólo
'Perimeter'

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

2-D sólo
'PixelIdxList'Índices lineales de los píxeles de la región, devueltos como vector de elemento.p
'PixelList'Ubicaciones de píxeles en la región, devueltas como una matriz.pQ Cada fila de la matriz tiene el formulario y especifica las coordenadas de un píxel en la región.[x y z ...]
'Solidity'Proporción de los píxeles en el casco convexo que también están en la región, devueltos como un escalar. Calculado como.Area/ConvexArea2-D sóloNoNo
'SubarrayIdx'Elementos de dentro del cuadro delimitador del objeto, devueltos como una matriz de celdas que contiene índices que extraen los elementos.LL(idx{:})No

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

Mediciones de valor de píxel

Nombre de propiedad DescripciónSoporte N-DSoporte de 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, devueltos como un escalar.
'MinIntensity'Valor del píxel con la intensidad más baja de la región, devuelto como un escalar.
'PixelValues'Número de píxeles de la región, que se devuelven como vector a-por-1, donde es el número de píxeles de la región.pp 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 ubicación y la intensidad, devuelto como un vector de coordenadas.pQ El primer elemento de es la coordenada horizontal (o-coordenada) del centroide ponderado.WeightedCentroidx El segundo elemento es la coordenada vertical (o-coordenada).y Todos los demás elementos están en orden de dimensión.WeightedCentroid

Tipos de datos: char | string | cell

Imagen que se debe 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, la estructura de componentes conectados o la matriz de etiquetas.BWCCL

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

Tipo de valor devuelto, especificado como uno de los siguientes valores.

ValorDescripción
'struct'Devuelve una matriz de estructuras con una longitud igual al número de objetos en,BW CC.NumObjectsO max(L(:)). Los campos de la matriz de estructura denotan diferentes propiedades para cada región, según lo especificado por.Propiedades
'table'

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

No se admite en una GPU.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Valores de medición, devueltos como una matriz de Structs o una tabla. El número de Structs en la matriz, o el número de filas de la tabla, corresponde al número de objetos en, o.BWCC.NumObjectsmax(L(:)) Los campos de cada struct, o las variables de cada fila, denotan las propiedades calculadas para cada región, según lo especificado por.Propiedades

Cuando se ejecuta en una GPU, solo puede devolver matrices struct.regionprops

Sugerencias

  • La función es útil con, y para crear una imagen binaria que contiene sólo los objetos o regiones que cumplen ciertos criterios.ismemberregionpropsbwconncomplabelmatrix Por ejemplo, estos comandos crean una imagen binaria que contiene solo las regiones cuya á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 usar esta sintaxis para crear un vector que contenga el valor de este campo para cada región de la imagen. Por ejemplo, si es una matriz de estructura con campo, entonces la siguiente expresión:statsArea

    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. es un vector de la misma longitud que la matriz de estructura.allAreastats

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

    FunciónDimensión de entradaFormulario de salidaUso de memoriaConectividad
    bwlabel2-DMatriz de etiquetas con doble precisiónAlto4 u 8
    bwlabelnN-DMatriz de etiquetas de doble precisiónAltoCualquier
    bwconncompN-DEstructuraCCBajoCualquier

    La salida de y es una matriz de etiquetas de doble precisión.bwlabelbwlabeln Para calcular una matriz de etiquetas utilizando un tipo de datos más eficiente en memoria, utilice la función en la salida de:labelmatrixbwconncomp

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

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

    CC = bwconncomp(BW, CONN); S = regionprops(CC);
  • La mayoría de las mediciones toman poco tiempo para computar. Sin embargo, las siguientes mediciones pueden tardar más, según el número de regiones en:L

    • 'ConvexHull'

    • 'ConvexImage'

    • 'ConvexArea'

    • 'FilledImage'

  • La computación de ciertos grupos de mediciones lleva aproximadamente la misma cantidad de tiempo que computar solo uno de ellos. aprovecha los cálculos intermedios útiles para cada cálculo.regionprops 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, o.Objetoscomponentes conectadosBlobs Una matriz de etiquetas que contiene regiones contiguas puede tener este aspecto:

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

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

Las regiones discontinuas son regiones que pueden contener varios componentes conectados. Una matriz de etiquetas que contiene regiones no contiguas podría tener este aspecto:

Los elementos de igual a 1 pertenecen a la primera región, que es discontinua y contiene dos componentes conectados.

1 1 0 1 1 0 2 2 1 1 0 1 1 0 2 2
L Los elementos de igual a 2 pertenecen a la segunda región, que es un solo componente conectado.L

Capacidades ampliadas

Introducido antes de R2006a