Main Content

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

Descripción

ejemplo

stats = regionprops(BW,properties) devuelve medidas para el conjunto de propiedades especificado por para cada componente 8 conectado (objeto) en la imagen binaria, . es struct array que contiene una estructura para cada objeto de la imagen.PropiedadesBWstats Puede utilizaren en regiones contiguas y regiones no contiguas (consulte ).regionpropsAlgoritmos

Nota

Para devolver las mediciones de una imagen volumétrica 3D, considere la posibilidad de utilizar .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, devuelve las medidas , , y .Propiedadesregionprops'Area''Centroid''BoundingBox'

Opcionalmente, puede medir las propiedades de las regiones de imagen usar una GPU (requiere ).Parallel Computing Toolbox™ 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 medidas para el conjunto de propiedades especificado por para cada región etiquetada en la imagen.PropiedadesI La primera entrada en ( , , o ) identifica las regiones de .regionpropsBWCCLI

ejemplo

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

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

Ejemplos

contraer todo

Lea 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 de una matriz de estructura.regionprops

s = regionprops(BW,'centroid');

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

centroids = cat(1,s.Centroid);

Muestre la imagen binaria con las ubicaciones centroidesuperpuestas.

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

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

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.

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

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

Tipo de medida, especificado 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 medidas de forma y, para las imágenes en escala de grises, también las medidas de valor de píxel.'all'regionprops

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

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

Medidas de forma

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

Número real de píxeles en la región, devueltos como escalares. (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 3D, utilice la propiedad de .'Volume'regionprops3

'BoundingBox'Rectángulo más pequeño que contiene la región, devuelto como un vector 1 por, donde está 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 el ancho del cuadro delimitador a lo largo de cada dimensión en el formulario. utiliza para obtener las dimensiones de la matriz de etiquetas o 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, regresó como unQ 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 de están en orden de dimensión.Centroid Esta figura ilustra el cuadro centroide y el cuadro delimitador de una región discontiguous. 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 escalar.'ConvexImage'Sólo 2-DNoNo
'ConvexHull'Polígono convexo más pequeño que puede contener la región, devuelto como una matriz -by-2.p Cada fila de la matriz contiene las coordenadas - y -de un vértice del polígono.xySólo 2-DNoNo
'ConvexImage'Imagen que especifica el casco convexo, con todos los píxeles dentro del casco rellenados (establecidos en ), devueltos como una imagen binaria ( ).onlogical La imagen es el tamaño del cuadro delimitador de la región. (Para los píxeles por los que pasa el límite del casco, utiliza la misma lógica que para determinar si el píxel está dentro o fuera del casco.)regionpropsroipoly Sólo 2-DNoNo
'Circularity'Circularidad que especifica la redondez de los objetos, devuelta como una estructura con campo .Circularity La estructura contiene el valor de circularidad para 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 no contiguas, devuelve resultados inesperados.regionpropsNo se recomienda la circularidad para objetos muy pequeños, como un cuadrado de 3*3. Para estos casos, los resultados pueden superar el valor de circularidad para un círculo perfecto que es 1.Sólo 2-DNo
'Eccentricity'Excentricidad de la elipse que tiene los mismos segundos momentos que la región, devuelta como escalar. La excentricidad es la relación de la distancia entre los focos de la elipse y su longitud del 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.)Sólo 2-D
'EquivDiameter'Diámetro de un círculo con la misma área que la región, devuelto como escalar. Calculado como .sqrt(4*Area/pi)Sólo 2-D
'EulerNumber'Número de objetos de la región menos el número de agujeros en esos objetos, devueltos como escalares. Esta propiedad solo se admite para matrices de etiquetas 2D. utiliza 8-conectividad para calcular la medición del número Euler.regionprops Para obtener más información sobre la conectividad, consulte .Conectividad de píxelesSólo 2-DNo
'Extent'Relación de píxeles en la región a píxeles en el cuadro delimitador total, devuelto como escalar. Calculado como el dividido por el área del cuadro delimitador.AreaSólo 2-D
'Extrema'

Puntos extremas en la región, devueltos como una matriz de 8 por 2. Cada fila de la matriz contiene las coordenadas - y -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 el extremo de dos regiones diferentes. En la región de la izquierda, cada punto extremo es distinto. En la región de la derecha, ciertos puntos extremos (por ejemplo, y ) son idénticos.top-leftleft-top

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

Imagen del mismo tamaño que el cuadro delimitador de la región, devuelto 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, devuelto como una matriz binaria ( ).logical Los píxeles corresponden a la región y todos los demás píxeles son .onoff
'MaxFeretProperties'Propiedades Feret que incluyen el diámetro máximo de Feret, su ángulo relativo y los valores de coordenadas, devueltos como una estructura con campos:
CampoDescripción
MaxFeretDiameterDiámetro máximo de Feret medido como la distancia máxima entre dos puntos límite en las vértices antipodales del casco convexo que encierran el objeto.
MaxFeretAngleAngulo 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.
Sólo 2-DNoNo
'MinFeretProperties'Propiedades Feret que incluyen el diámetro mínimo de Feret, su ángulo relativo y los valores de coordenadas, devueltos como una estructura con campos:
CampoDescripción
MinFeretDiameterDiámetro mínimo de Feret medido como la distancia mínima entre dos puntos límite en los vértices antipodales del casco convexo que encierran el objeto.
MinFeretAngleAngulo 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.
Sólo 2-DNoNo
'MajorAxisLength'Longitud (en píxeles) del eje principal de la elipse que tiene el mismo segundo momento central normalizado que la región, devuelto como escalar.Sólo 2-D
'MinorAxisLength'Longitud (en píxeles) del eje menor de la elipse que tiene el mismo segundo momento central normalizado que la región, devuelto como escalar.Sólo 2-D
'Orientation'

El ángulo entre el eje y el eje principal de la elipse que tiene los mismos segundos momentos que la región, devuelto como 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 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 de puntos horizontal y el eje principal.

Sólo 2-D
'Perimeter'

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

Sólo 2-D
'PixelIdxList'Indices lineales de los píxeles de la región, devueltos como un vector -element.p
'PixelList'Ubicaciones de píxeles en la región, devueltas como una matriz -by-.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, devuelto como un escalar. Calculado como .Area/ConvexAreaSólo 2-DNoNo
'SubarrayIdx'Elementos del interior del cuadro delimitador de objeto, devueltos como una matriz de celdas que contiene índices de forma que extrae 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 del valor de píxeles

Nombre de la propiedad DescripciónSoporte N-DCompatibilidad con GPUGeneración de código
'MaxIntensity'El valor del píxel con mayor intensidad en la región, devuelto como escalar.
'MeanIntensity'Media de todos los valores de intensidad en la región, devueltos como escalares.
'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 -by-1, donde está el número de píxeles de la región.pp Cada elemento del vector contiene el valor de un píxel de la región.
'WeightedCentroid'Centro de la región en función de la ubicación y el valor de intensidad, devuelto como vector -por- 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 de están en orden de dimensión.WeightedCentroid

Tipos de datos: char | string | cell

Imagen a 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 conectada o la matriz de etiquetas.BWCCL

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

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

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

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

Tipos de datos: char | string

Argumentos de salida

contraer todo

Valores de medición, devueltos como una matriz de estructuras o una tabla. El número de estructuras de la matriz, o el número de filas de la tabla, corresponde al número de objetos de , , o .BWCC.NumObjectsmax(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 .Propiedades

Sugerencias

  • La función es útil con , , y para crear una imagen binaria que contenga solo objetos o regiones que cumplan determinados 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 field , la siguiente expresión:statsArea

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

    es equivalente 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 conectados de proceso 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 la 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 utiliza la función de eficiencia 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 tardan poco tiempo en calcularse. Sin embargo, las siguientes mediciones pueden tardar más, dependiendo del número de regiones en:L

    • 'ConvexHull'

    • 'ConvexImage'

    • 'ConvexArea'

    • 'FilledImage'

  • Calcular ciertos grupos de mediciones toma aproximadamente la misma cantidad de tiempo que calcular 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 podría 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 no contiguas 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 discontiguous 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 único componente conectado.L

Capacidades ampliadas

Introducido antes de R2006a