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.

imerode

Erosionar una imagen

Descripción

J = imerode(I,SE) erosiona la imagen en escala de grises, binaria o binaria empaquetada I utilizando el elemento estructurante SE.

ejemplo

J = imerode(I,nhood) erosiona la imagen I, en la que nhood es una matriz con valores 0 y 1 que especifica el entorno del elemento estructurante.

Esta sintaxis es equivalente a imerode(I,strel(nhood)).

J = imerode(___,packopt,m) especifica si la imagen de entrada I es una imagen binaria empaquetada. m especifica la dimensión de filas de la imagen original desempaquetada.

J = imerode(___,shape) especifica el tamaño de la imagen de salida.

Ejemplos

contraer todo

Lea una imagen binaria en el espacio de trabajo.

originalBW = imread('text.png');

Cree un elemento estructurante plano en forma de línea.

se = strel('line',11,90);

Erosione la imagen con el elemento estructurante.

erodedBW = imerode(originalBW,se);

Vea la imagen original y la imagen erosionada.

figure
imshow(originalBW)

figure
imshow(erodedBW)

Lea una imagen en escala de grises en el espacio de trabajo.

originalI = imread('cameraman.tif');

Cree un objeto offsetstrel no plano.

se = offsetstrel('ball',5,5);

Erosione la imagen.

erodedI = imerode(originalI,se);

Muestre la imagen original y la imagen erosionada.

figure
imshow(originalI)

figure
imshow(erodedI)

Cree un volumen binario.

load mristack
BW = mristack < 100;

Cree un elemento estructurante cúbico.

se = strel('cube',3)
se = 
strel is a cube shaped structuring element with properties:

      Neighborhood: [3x3x3 logical]
    Dimensionality: 3

Erosione el volumen con un elemento estructurante cúbico.

erodedBW = imerode(BW, se);

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como imagen en escala de grises o imagen binaria empaquetada de cualquier dimensión.

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

Elemento estructurante, especificado como un objeto escalar strel o un objeto offsetstrel. SE también puede ser un arreglo de objeto strel u objetos offsetstrel, en cuyo caso imerode realiza múltiples erosiones de la imagen de entrada, utilizando cada elemento estructurante sucesivamente.

imerode realiza la erosión en escala de grises para todas las imágenes, excepto las de tipo logical. En este caso, el elemento estructurante debe ser plano y imerode realiza la erosión binaria.

Entorno del elemento estructurante, especificado como matriz con valores 0 y 1.

Ejemplo: [0 1 0; 1 1 1; 0 1 0]

Indicador de imagen binaria empaquetada, especificado como uno de los siguientes:

Valor

Descripción

'notpacked'

I se trata como un arreglo normal.

'ispacked'

I se trata como una imagen binaria empaquetada como la producida por bwpack. I debe ser un arreglo 2D de uint32 y SE debe ser un elemento estructurante 2D plano. El valor de shape debe ser 'same'.

Tipos de datos: char | string

Dimensión de filas de la imagen original desempaquetada, especificada como entero positivo.

Tipos de datos: double

Tamaño de la imagen de salida, especificado como uno de los siguientes.

Valor

Descripción

'same'

La imagen de salida tiene el mismo tamaño que la imagen de entrada. Si el valor de packopt es 'ispacked', shape debe ser 'same'.

'full'

Calcule la erosión completa.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Imagen erosionada, devuelta como imagen en escala de grises, imagen binaria o imagen binaria empaquetada. Si la imagen de entrada I es binaria empaquetada, entonces J también es binaria empaquetada. J tiene el mismo tipo de datos que I.

Más acerca de

contraer todo

Erosión binaria

La erosión binaria de A por B, con la denotación A ϴ B, se define como la operación de conjuntos A ϴ B = {z|(BzA}. En otras palabras, es el conjunto de ubicaciones de los píxeles z, en las que el elemento estructurante trasladado a la ubicación z solo se solapa con los píxeles del primer plano en A.

Para obtener más información sobre la erosión binaria, consulte [1].

Erosión de escala de grises

En la forma general de la erosión de escala de grises, el elemento estructurante tiene una altura. La erosión de la escala de grises de A(x, y) por B(x, y) se define como

(A ϴ B)(x, y) = min {A(x + x′, y + y′) − B(x′, y′) | (x′, y′) ∊ DB},

DB es el dominio del elemento estructurante B, y A(x,y) se supone que está +∞ fuera del dominio de la imagen. Para crear un elemento estructurante con valores de altura distintos de cero, utilice la sintaxis strel(nhood,height), donde height da los valores de altura y nhood corresponde al dominio del elemento estructurante, DB.

Lo más habitual es que la erosión de escala de grises se realice con un elemento estructurante plano (B(x,y) = 0). La erosión de escala de grises utilizando un elemento estructurante de este tipo equivale a un operador de mínimo local:

(A ϴ B)(x, y) = min {A(x + x′, y + y′) | (x′, y′) ∊ DB}.

Todas las sintaxis strel excepto strel(nhood,height), strel('arbitrary',nhood,height), y strel('ball', ...) producen elementos estructurantes planos.

Sugerencias

  • Si la dimensionalidad de la imagen I es mayor que la dimensionalidad del elemento estructurante, la función imerode aplica la misma erosión morfológica a todos los planos en las dimensiones más altas.

    Puede utilizar este comportamiento para realizar la erosión morfológica de imágenes RGB. Especifique un elemento estructurante 2D en el caso de las imágenes RGB para que el cierre se ejecute en cada canal de color por separado.

  • Cuando se especifica un entorno del elemento estructurante, imerode determina el elemento central de nhood por floor((size(nhood)+1)/2).

  • imerode aprovecha automáticamente la descomposición de un objeto de elemento estructurante (si existe). Además, al realizar la erosión binaria con un objeto de elemento estructurante que tenga una descomposición, imerode utiliza automáticamente el empaquetamiento de imágenes binarias para acelerar la erosión [3].

Referencias

[1] Gonzalez, Rafael C., Richard E. Woods, and Steven L. Eddins. Digital Image Processing Using MATLAB. Third edition. Knoxville: Gatesmark Publishing, 2020.

[2] Haralick, Robert M., and Linda G. Shapiro. Computer and Robot Vision. 1st ed. USA: Addison-Wesley Longman Publishing Co., Inc., 1992, pp. 158-205.

[3] Boomgaard, Rein van den, and Richard van Balen. “Methods for Fast Morphological Image Transforms Using Bitmapped Binary Images.” CVGIP: Graphical Models and Image Processing 54, no. 3 (May 1, 1992): 252–58. https://doi.org/10.1016/1049-9652(92)90055-3.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

Funciones

Objetos