logo

Erosión y Dilatación de imágenes usando OpenCV en Python

Las operaciones morfológicas modifican imágenes en función de la estructura y disposición de los píxeles. Aplican kernel a una imagen de entrada para cambiar sus características según la disposición de los píxeles vecinos. Las operaciones morfológicas como la erosión y la dilatación son técnicas de procesamiento de imágenes, especialmente para imágenes binarias o en escala de grises. Ayudan a analizar formas, limpiar el ruido y refinar los límites de los objetos.

Erosión

La erosión en el procesamiento de imágenes es una operación morfológica que reduce y adelgaza los límites de los objetos en una imagen eliminando píxeles en los bordes de los objetos, haciendo que los objetos sean más pequeños y eliminando el pequeño ruido blanco.

Objetivo

  • Reduce o erosiona los límites de los objetos en primer plano (normalmente píxeles blancos).
  • Elimina el ruido blanco fino y separa los objetos que se tocan.

Cómo funciona

  • Un núcleo (normalmente una matriz de unos de 3×3, 5×5 o 7×7) se desliza por la imagen.
  • Un píxel permanece blanco (1) solo si todos los píxeles debajo del núcleo son blancos; de lo contrario se vuelve negro (0).
  • Este proceso reduce el tamaño del objeto y erosiona los bordes.

Dilatación

La dilatación es una operación morfológica que expande los límites de los objetos en una imagen agregando píxeles a los bordes de los objetos, haciendo que los objetos parezcan más grandes y llenando pequeños espacios o agujeros.



10 por ciento de 60

Objetivo:

  • Expande los límites de los objetos en primer plano.
  • Acentúa o amplía rasgos y llena pequeños huecos.

Cómo funciona:

  • El núcleo está igualmente convolucionado sobre la imagen.
  • Un píxel se establece en blanco (1) si  al menos uno  de los píxeles correspondientes debajo del núcleo es blanco.
  • Como resultado, las regiones blancas crecen fusionando pequeños agujeros o uniendo partes rotas.

Implementación de Erosión y Dilatación

Implementemos Erosión y Dilatación con OpenCV en Python

Paso 1: importar bibliotecas

Importaremos las bibliotecas necesarias.

  • cv2 : Biblioteca OpenCV para procesamiento de imágenes.
  • engordado : Para operaciones numéricas y para crear núcleos.
  • matplotlib.pyplot : Para visualizar imágenes en cuadernos.

Paso 2: cargar la imagen de entrada y definir los elementos estructurantes (núcleo)

El kernel define la vecindad de la operación. Las opciones comunes son rectángulos o discos.

La imagen usada se puede descargar desde aquí .

ejemplos de código de muestra de javascript
Python
img = cv2.imread('input.webp' 0) plt.imshow(img cmap='gray') plt.title('Original Image') plt.axis('off') plt.show() kernel = np.ones((5 5) np.uint8) 

Producción:

gato-original' title=Original

Paso 3: aplicar la erosión

La erosión funciona deslizando el núcleo por la imagen. Un píxel permanece blanco (255) sólo si todos los píxeles debajo del núcleo son blancos; de lo contrario, se vuelve negro (0). Esto reduce los límites de los objetos y elimina el pequeño ruido blanco.

Python
img_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show() 

Producción:

erosión' loading='lazy' title=Después de la erosión

Paso 4: aplicar dilatación

La dilatación desliza el núcleo a través de la imagen y un píxel se vuelve blanco si al menos un píxel debajo del núcleo es blanco. Esto espesa las regiones u objetos blancos y rellena pequeños agujeros.

Python
img_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show() 

Producción:

dilatación' loading='lazy' title=Después de la dilatación

Aplicaciones

Erosión

  • Eliminar ruido blanco aislado de una imagen.
  • Separar objetos que están unidos o tocándose.
  • Encontrar límites de objetos reduciendo el tamaño del objeto.

Dilatación

  • Rellenar pequeños agujeros o huecos en objetos.
  • Unir partes rotas o desconectadas de un mismo objeto.
  • Se utiliza después de la erosión (como parte de la operación de "apertura") para restaurar el tamaño del objeto mientras se elimina el ruido.

La erosión y la dilatación son operaciones morfológicas fundamentales en el procesamiento de imágenes que nos permiten refinar, limpiar y manipular formas dentro de las imágenes. Al utilizar elementos estructurantes simples, estas técnicas ayudan a eliminar el ruido, separar o conectar objetos y mejorar las características de la imagen, lo que las convierte en herramientas esenciales para un preprocesamiento y análisis efectivos en tareas de visión por computadora con OpenCV y Python.

Crear cuestionario