Le operazioni morfologiche modificano le immagini in base alla struttura e alla disposizione dei pixel. Applicano il kernel a un'immagine di input per modificarne le caratteristiche a seconda della disposizione dei pixel vicini. Le operazioni morfologiche come l'erosione e la dilatazione sono tecniche di elaborazione delle immagini, in particolare per immagini binarie o in scala di grigi. Aiutano ad analizzare le forme, a pulire il rumore e a perfezionare i confini degli oggetti.
Erosione
L'erosione nell'elaborazione delle immagini è un'operazione morfologica che restringe e assottiglia i confini degli oggetti in un'immagine rimuovendo i pixel sui bordi degli oggetti, rendendoli effettivamente più piccoli e rimuovendo il piccolo rumore bianco.
Scopo
- Riduce o erode i confini degli oggetti in primo piano (solitamente pixel bianchi).
- Rimuove il rumore bianco sottile e separa gli oggetti che si toccano.
Come funziona
- Un kernel (di solito una matrice 3×3 5×5 o 7×7 di uno) scorre sull'immagine.
- Un pixel rimane bianco (1) solo se tutti i pixel sotto il kernel sono bianchi; altrimenti diventa nero (0).
- Questo processo riduce le dimensioni dell'oggetto ed erode i bordi.
Dilatazione
La dilatazione è un'operazione morfologica che espande i confini degli oggetti in un'immagine aggiungendo pixel ai bordi degli oggetti, facendoli apparire più grandi e riempiendo piccoli spazi vuoti o buchi.
Scopo:
- Espande i confini degli oggetti in primo piano.
- Accentua o ingrandisce le caratteristiche e colma piccole lacune.
Come funziona:
- Il kernel è similmente contorto sull'immagine.
- Un pixel è impostato su bianco (1) se almeno uno dei pixel corrispondenti sotto il kernel è bianco.
- Di conseguenza le regioni bianche crescono unendo piccoli fori o unendo insieme parti rotte.
Attuazione dell'erosione e della dilatazione
Implementiamo Erosione e Dilatazione con OpenCV in Python
Passaggio 1: importare librerie
Importeremo le librerie necessarie
- cv2 : Libreria OpenCV per l'elaborazione delle immagini.
- insensato : Per operazioni numeriche e per creare nuclei.
- matplotlib.pyplot : Per visualizzare le immagini nei taccuini.
Passaggio 2: caricare l'immagine di input e definire gli elementi di struttura (kernel)
Il kernel definisce l'intorno per l'operazione. Le scelte comuni sono rettangoli o dischi.
PythonL'immagine utilizzata può essere scaricata da Qui .
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)
Produzione:
OriginalePassaggio 3: applicare l'erosione
L'erosione funziona facendo scorrere il kernel sull'immagine. Un pixel rimane bianco (255) solo se tutti i pixel sotto il nucleo sono bianchi altrimenti diventa nero (0). Ciò riduce i confini dell'oggetto e rimuove il piccolo rumore bianco.
Pythonimg_erosion = cv2.erode(img kernel iterations=1) plt.imshow(img_erosion cmap='gray') plt.title('After Erosion') plt.axis('off') plt.show()
Produzione:
Dopo l'erosionePassaggio 4: applicare la dilatazione
La dilatazione fa scorrere il nucleo attraverso l'immagine e un pixel diventa bianco se almeno un pixel sotto il nucleo è bianco. Questo ispessisce le regioni o gli oggetti bianchi e riempie piccoli buchi.
Pythonimg_dilation = cv2.dilate(img kernel iterations=1) plt.imshow(img_dilation cmap='gray') plt.title('After Dilation') plt.axis('off') plt.show()
Produzione:
Dopo la dilatazioneApplicazioni
Erosione
- Rimozione del rumore bianco isolato da un'immagine.
- Separare oggetti uniti o toccanti.
- Trovare i confini degli oggetti riducendo le dimensioni dell'oggetto.
Dilatazione
- Riempimento di piccoli fori o spazi vuoti negli oggetti.
- Unione di parti rotte o disconnesse dello stesso oggetto.
- Utilizzato dopo l'erosione (come parte dell'operazione di "apertura") per ripristinare le dimensioni dell'oggetto mantenendo rimosso il rumore.
L'erosione e la dilatazione sono operazioni morfologiche fondamentali nell'elaborazione delle immagini che ci consentono di affinare, pulire e manipolare le forme all'interno delle immagini. Utilizzando semplici elementi di strutturazione, queste tecniche aiutano a rimuovere il rumore, separano o collegano oggetti e migliorano le caratteristiche dell'immagine, rendendoli strumenti essenziali per un'efficace pre-elaborazione e analisi nelle attività di visione artificiale con OpenCV e Python.
Crea quiz