logo

Érosion et dilatation des images à l'aide d'OpenCV en Python

Les opérations morphologiques modifient les images en fonction de la structure et de la disposition des pixels. Ils appliquent le noyau à une image d'entrée pour modifier ses caractéristiques en fonction de la disposition des pixels voisins. Les opérations morphologiques telles que l'érosion et la dilatation sont des techniques de traitement d'image, en particulier pour les images binaires ou en niveaux de gris. Ils aident à analyser les formes, à nettoyer le bruit et à affiner les limites des objets.

Érosion

L'érosion dans le traitement d'image est une opération morphologique qui réduit et amincit les limites des objets dans une image en supprimant les pixels sur les bords des objets, ce qui rend les objets plus petits et supprime le petit bruit blanc.

But

  • Réduit ou érode les limites des objets de premier plan (généralement des pixels blancs).
  • Supprime le bruit blanc fin et sépare les objets qui se touchent.

Comment ça marche

  • Un noyau (généralement une matrice 3×3 5×5 ou 7×7) glisse sur l’image.
  • Un pixel reste blanc (1) uniquement si tous les pixels sous le noyau sont blancs ; sinon il devient noir (0).
  • Ce processus réduit la taille de l'objet et érode les bords.

Dilatation

La dilatation est une opération morphologique qui élargit les limites des objets dans une image en ajoutant des pixels aux bords des objets, ce qui fait paraître les objets plus grands et comble de petits espaces ou trous.



But:

  • Élargit les limites des objets de premier plan.
  • Accentue ou agrandit les traits et comble les petites lacunes.

Comment ça marche :

  • Le noyau est également convolué sur l'image.
  • Un pixel est mis en blanc (1) si  au moins un  des pixels correspondants sous le noyau sont blancs.
  • En conséquence, les régions blanches se développent en fusionnant de petits trous ou en joignant les parties cassées.

Mise en œuvre de l’érosion et de la dilatation

Implémentons l'érosion et la dilatation avec OpenCV en Python

chaîne de liste java

Étape 1 : Importer des bibliothèques

Nous importerons les bibliothèques nécessaires

  • CV2 : Bibliothèque OpenCV pour le traitement d'images.
  • numpy : Pour les opérations numériques et pour créer des noyaux.
  • matplotlib.pyplot : Pour afficher des images dans des cahiers.

Étape 2 : Charger l'image d'entrée et définir les éléments structurants (noyau)

Le noyau définit le voisinage de l'opération. Les choix courants sont les rectangles ou les disques.

L'image utilisée peut être téléchargée à partir de ici .

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) 

Sortir:

tutoriel de réaction js
chat original' title=Original

Étape 3 : Appliquer l’érosion

L'érosion fonctionne en faisant glisser le noyau sur l'image. Un pixel reste blanc (255) seulement si tous les pixels sous le noyau sont blancs sinon il devient noir (0). Cela réduit les limites des objets et supprime le petit bruit blanc.

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

Sortir:

érosion' loading='lazy' title=Après l'érosion

Étape 4 : appliquer la dilatation

La dilatation fait glisser le noyau sur l'image et un pixel devient blanc si au moins un pixel sous le noyau est blanc. Cela épaissit les régions ou les objets blancs et remplit les petits trous.

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

Sortir:

dilatation' loading='lazy' title=Après dilatation

Applications

Érosion

  • Suppression du bruit blanc isolé d'une image.
  • Séparer les objets qui sont joints ou se touchent.
  • Trouver les limites des objets en réduisant la taille de l'objet.

Dilatation

  • Remplissage de petits trous ou lacunes dans les objets.
  • Rejoindre des parties cassées ou déconnectées du même objet.
  • Utilisé après l'érosion (dans le cadre de l'opération « d'ouverture ») pour restaurer la taille de l'objet tout en supprimant le bruit.

L'érosion et la dilatation sont des opérations morphologiques fondamentales dans le traitement d'images qui nous permettent d'affiner et de manipuler les formes des images. En utilisant des éléments structurants simples, ces techniques aident à supprimer le bruit, à séparer ou à connecter les objets et à améliorer les caractéristiques de l'image, ce qui en fait des outils essentiels pour un prétraitement et une analyse efficaces dans les tâches de vision par ordinateur avec OpenCV et Python.

Créer un quiz