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.
PythonLa imagen usada se puede descargar desde aquí .
ejemplos de código de muestra de javascript
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:
OriginalPaso 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.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Producción:
Después de la erosiónPaso 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.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Producción:
Después de la dilataciónAplicaciones
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