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.

imclearborder

Suprimir estructuras de línea conectadas al borde de una imagen

Descripción

J = imclearborder(I) suprime estructuras en la imagen I que son más claras que los entornos y que están conectadas con el borde de la imagen. Utilice esta función para aclarar el borde de la imagen o seleccionar los bordes de la imagen. Para las imágenes en escala de grises, imclearborder tiende a reducir el nivel de intensidad general, además de suprimir las estructuras de los bordes. La imagen de salida J es binaria o en escala de grises, dependiendo de la entrada.

ejemplo

J = imclearborder(I,conn) especifica la conectividad de los píxeles conn.

J = imclearborder(___,Name=Value) especifica opciones para la selección de la estructura de los bordes usando uno o más argumentos nombre-valor. Por ejemplo, imclearborder(I,Borders=["left" "right"]) elimina únicamente las estructuras que tocan el borde izquierdo o derecho de una imagen.

ejemplo

Ejemplos

contraer todo

Lea una imagen binaria (una imagen posprocesada de granos columnares microscópicos de cuarzo [2]) en el área de trabajo y muéstrela.

originalBW = imread("quartz_columns.png");
imshow(originalBW)

Borre todos los objetos de línea de la imagen que estén conectados al borde de la imagen y muestre la imagen ajustada.

BWclearB = imclearborder(originalBW);
imshow(BWclearB)

Lea una imagen en escala de grises que contenga un objeto con un borde oscuro en el área de trabajo y muéstrela.

I = imread("logo.png");
imshow(I)

Complemente la imagen y elimine el borde. Muestre la imagen.

J = imcomplement(I);
JNoBorder = imclearborder(J);
imshow(JNoBorder)

Complemente la imagen de nuevo para devolverle el contraste original de la imagen de entrada.

INoBorder = imcomplement(JNoBorder);
imshow(INoBorder)

Lea una imagen binaria (una imagen posprocesada de granos columnares microscópicos de cuarzo [2]) en el área de trabajo y muéstrela.

originalBW = imread("quartz_columns.png");
imshow(originalBW)

Elimine solo los objetos que estén conectados al borde superior o inferior de la imagen.

BWclear2B = imclearborder(originalBW, Borders=["top" "bottom"]);
imshow(BWclear2B)

Cree una imagen binaria sencilla.

BW = [0     0     0     0     0     0     0     0     0
      0     0     0     0     0     0     0     0     0
      0     0     0     0     0     0     0     0     0
      1     0     0     1     1     1     0     0     0
      0     1     0     1     1     1     0     0     0
      0     0     0     1     1     1     0     0     0
      0     0     0     0     0     0     0     0     0
      0     0     0     0     0     0     0     0     0
      0     0     0     0     0     0     0     0     0];

Borre los píxeles del borde de la imagen usando la conectividad de 4. Tenga en cuenta que imclearborder no borra el píxel en (5,2) porque, con la conectividad de 4, no se considera conectado al píxel del borde en (4,1).

BWc1 = imclearborder(BW,Connectivity=4)
BWc1 = 9×9

     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     1     1     1     0     0     0
     0     1     0     1     1     1     0     0     0
     0     0     0     1     1     1     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0

Ahora borre los píxeles del borde de la imagen usando la conectividad de 8. imclearborder borra el píxel en (5,2) porque, con la conectividad de 8, no se considera conectado al píxel del borde en (4,1).

BWc2 = imclearborder(BW,Connectivity=8)
BWc2 = 9×9

     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     1     1     1     0     0     0
     0     0     0     1     1     1     0     0     0
     0     0     0     1     1     1     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0     0

Argumentos de entrada

contraer todo

Imagen binaria o en escala de grises, especificada como un arreglo numérico o lógico.

Ejemplo: I = imread('pout.tif');

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

Conectividad de píxeles, especificada como uno de los siguientes valores de la tabla o como una matriz de 3 por 3 por ... por 3 con valores 0 y 1. La conectividad por defecto es 8 para imágenes 2D y 26 para imágenes 3D.

Valor

Significado

Conectividades bidimensionales

4

Los píxeles se consideran conectados si comparten bordes. El entorno de un píxel son los píxeles adyacentes en las direcciones horizontal y vertical.

3-by-3 pixel neighborhood with four pixels connected to the center pixel

El píxel actual se muestra en gris.

8

Los píxeles se consideran conectados si comparten bordes o vértices. El entorno de un píxel son los píxeles adyacentes en las direcciones horizontal, vertical y diagonal.

3-by-3 pixel neighborhood with 8 pixels connected to the center pixel

El píxel actual se muestra en gris.

Conectividades tridimensionales

6

Los píxeles se consideran conectados si comparten caras. El entorno de un píxel son los píxeles adyacentes en:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces of the center pixel

El píxel actual se muestra en gris.

18

Los píxeles se consideran conectados si sus caras o bordes se tocan. El entorno de un píxel son los píxeles adyacentes en:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como derecha-abajo o adentro-arriba

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces and 12 pixels connected to the edges of the center pixel

El píxel actual es el centro del cubo.

26

Los píxeles se consideran conectados si sus caras, bordes o vértices se tocan. El entorno de un píxel son los píxeles adyacentes en:

  • Alguna de estas direcciones: adentro, afuera, izquierda, derecha, arriba y abajo

  • Una combinación de dos direcciones, como derecha-abajo o adentro-arriba

  • Una combinación de tres direcciones, como adentro-derecha-arriba o adentro-izquierda-abajo

3-by-3-by-3 pixel neighborhood with 6 pixels connected to the faces, 12 pixels connected to the edges, and 8 pixels connected to the corners of the center pixel

El píxel actual es el centro del cubo.

En el caso de dimensiones más grandes, imclearborder utiliza el valor por defecto conndef(ndims(I),'maximal').

La conectividad puede definirse de una forma más general para cualquier dimensión especificando una matriz de 3 por 3 por ... por 3 con valores 0 y 1. Los elementos con el valor 1 definen los entornos relativos al elemento central de conn. Tenga en cuenta que conn debe ser simétrica respecto de su elemento central. Para obtener más información, consulte Especificar conectividades personalizadas.

Nota

Es posible que un píxel del borde de la imagen de salida no se considere un píxel del borde si se especifica una conectividad no predeterminada. Por ejemplo, si conn = [0 0 0; 1 1 1; 0 0 0], los elementos de la primera y la última fila no se consideran píxeles de borde porque, según esa definición de conectividad, no están conectados a la región exterior de la imagen.

Nota

Si especifica tanto el argumento conn como el argumento nombre-valor Connectivity, imclearborder establece la conectividad según Connectivity e ignora el valor de conn.

Tipos de datos: double | logical

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

Ejemplo: imclearborder(I,Borders=["left" "right"]) elimina las estructuras de línea que tocan el borde izquierdo o derecho de una imagen.

Desde R2023b

Bordes de imagen de los que se desea eliminar las estructuras, especificados como un vector de cadenas o una matriz de N por 2 con valores 0 y 1:

  • Vector de cadenas: especifica de qué bordes de una imagen 2D eliminar estructuras como cualquier combinación de "left", "right", "top" y "bottom". Cuando especifica I como una imagen 2D, el valor predeterminado de Borders es ["left" "right" "top" "bottom"].

  • Matriz de N por 2 con valores 0 y 1: especifica de qué bordes de una imagen de N dimensiones eliminar estructuras, donde el primer elemento de cada fila representa el primer borde en la dimensión correspondiente y el segundo elemento representa el segundo borde en esa dimensión. Por ejemplo, si Borders(k,1) es 1, se seleccionan las estructuras que tocan el primer borde en la k-ésima dimensión. Si Borders(k,2) es 1, se seleccionan las estructuras que tocan el segundo borde en la k-ésima dimensión. Por ejemplo, especificar Borders = [0 0; 1 1; 0 0] es equivalente a especificar Borders = ["left" "right"]. El valor predeterminado de Borders para imágenes de N dimensiones es ones(ndims(I),2), que especifica que se deben eliminar las estructuras que tocan todos los bordes de la imagen.

Desde R2023b

Conectividad de píxeles, especificada como 4, 8, 6, 18, 26 o como una matriz de 3 por 3 por ... por 3 con valores 0 y 1. Para obtener más información, consulte conn.

Tipos de datos: double | logical

Argumentos de salida

contraer todo

Imagen binaria o en escala de grises procesada, devuelta como un arreglo lógico o numérico, dependiendo de la imagen de entrada que se especifique.

Algoritmos

imclearborder utiliza una reconstrucción morfológica cuando:

  • La imagen de máscara es la imagen de entrada.

  • La imagen de marcador es 0 en todas partes excepto por el borde, donde es igual a la imagen de máscara.

Referencias

[1] Soille, Pierre. Morphological Image Analysis: Principles and Applications Berlin ; New York: Springer, 1999, 164–165.

[2] Molnar, Ian. Uniform quartz - Silver nanoparticle injection experiment, Digital Rocks Portal (April 2016). Accessed March 10, 2023. https://www.digitalrocksportal.org/projects/44, made available for documentation use under the ODC-BY 1.0 Attribution License.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

|