logo

Erosió i dilatació d'imatges mitjançant OpenCV a Python

Les operacions morfològiques modifiquen les imatges en funció de l'estructura i la disposició dels píxels. Apliquen el nucli a una imatge d'entrada per canviar-ne les característiques en funció de la disposició dels píxels veïns. Les operacions morfològiques com l'erosió i la dilatació són tècniques de processament d'imatges, especialment per a imatges binàries o en escala de grisos. Ajuden a analitzar formes netejant el soroll i perfeccionant els límits dels objectes.

Erosió

L'erosió en el processament d'imatges és una operació morfològica que redueix i redueix els límits dels objectes d'una imatge eliminant els píxels de les vores dels objectes, fent-los més petits i eliminant el petit soroll blanc.

Propòsit

  • Redueix o erosiona els límits dels objectes en primer pla (normalment píxels blancs).
  • Elimina el soroll blanc fi i separa els objectes que es toquen.

Com funciona

  • Un nucli (normalment una matriu de 3×3 5×5 o 7×7) llisca per la imatge.
  • Un píxel roman blanc (1) només si tots els píxels que hi ha sota el nucli són blancs; en cas contrari es torna negre (0).
  • Aquest procés redueix la mida de l'objecte i erosiona les vores.

Dilatació

La dilatació és una operació morfològica que amplia els límits dels objectes d'una imatge afegint píxels a les vores de l'objecte fent que els objectes semblin més grans i omplint petits buits o forats.



Finalitat:

  • Amplia els límits dels objectes en primer pla.
  • Accentua o augmenta les característiques i omple petits buits.

Com funciona:

  • El nucli es convoluciona de manera similar sobre la imatge.
  • Un píxel s'estableix en blanc (1) si  almenys un  dels píxels corresponents sota el nucli és blanc.
  • Com a resultat, les regions blanques creixen fusionant petits forats o unint parts trencades.

Implementació d'Erosió i Dilatació

Implementem l'erosió i la dilatació amb OpenCV a Python

si més en java

Pas 1: importa les biblioteques

Importarem les biblioteques necessàries

  • cv2 : Biblioteca OpenCV per al tractament d'imatges.
  • numpy : Per a operacions numèriques i per crear nuclis.
  • matplotlib.pyplot : Per mostrar imatges en quaderns.

Pas 2: Carregueu la imatge d'entrada i definiu els elements d'estructuració (nucli)

El nucli defineix el barri per a l'operació. Les opcions habituals són rectangles o discos.

La imatge utilitzada es pot descarregar des de aquí .

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) 

Sortida:

gat original' title=Original

Pas 3: aplicar l'erosió

L'erosió funciona fent lliscar el nucli per la imatge. Un píxel roman blanc (255) només si tots els píxels sota el nucli són blancs, en cas contrari es torna negre (0). Això redueix els límits dels objectes i elimina el petit soroll 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() 

Sortida:

nom d'usuari
erosió' loading='lazy' title=Després de l'erosió

Pas 4: aplicar la dilatació

La dilatació fa lliscar el nucli per la imatge i un píxel es torna blanc si almenys un píxel sota el nucli és blanc. Això engrossi les regions blanques o els objectes i omple petits forats.

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

Sortida:

dilatació' loading='lazy' title=Després de la dilatació

Aplicacions

Erosió

  • Eliminació del soroll blanc aïllat d'una imatge.
  • Separació d'objectes que s'uneixen o es toquen.
  • Trobar límits d'objectes reduint la mida de l'objecte.

Dilatació

  • Omplir petits forats o buits en objectes.
  • Unir parts trencades o desconnectades d'un mateix objecte.
  • S'utilitza després de l'erosió (com a part de l'operació d'obertura) per restaurar la mida de l'objecte mentre es manté el soroll eliminat.

L'erosió i la dilatació són operacions morfològiques fonamentals en el processament d'imatges que ens permeten perfeccionar la neteja i manipular les formes dins de les imatges. Mitjançant l'ús d'elements d'estructuració senzills, aquestes tècniques ajuden a eliminar el soroll per separar o connectar objectes i millorar les característiques de la imatge, fent-les eines essencials per a un preprocessament i anàlisi efectius en tasques de visió per ordinador amb OpenCV i Python.

Crea un qüestionari