Trasformazione immagine
La tecnica Convoluzione per trasformare immagini
Convoluzione immagine
Per eseguire un'operazione convoluzionale su un'immagine a colori utilizzando Python, useremo la libreria OpenCVEcco i passi
Importazione delle librerie necessarie
import cv2
import numpy as np
import matplotlib.pyplot as plt
- `cv2`: È la libreria OpenCV utilizzata per il carico delle immagini e l'applicazione della convoluzione.
- `numpy`: È utilizzata per operazioni matematiche e la creazione di array.
- `matplotlib.pyplot`: È utilizzata per mostrare le immagini.
Caricamento dell'immagine
image_path = "/Applications/MAMP/htdocs/livio.bollini/assets/images/reti-neurali/gatto.jpeg"
image = cv2.imread(image_path)
- `image_path`: È il percorso dell'immagine sul disco.
- `cv2.imread()`: Viene utilizzata per caricare l'immagine dal disco nel formato BGR (blu, verde, rosso).
Mostrare l'immagine originale
def show(image, title="Image"):
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.title(title)
plt.axis('off')
plt.show()
show(image, "Original Image")
- `show()`: È una funzione definita per mostrare l'immagine utilizzando `matplotlib`.
- `cv2.cvtColor()`: Viene utilizzata per convertire l'immagine dal formato BGR a RGB prima di mostrare l'immagine, poiché `matplotlib` utilizza il formato RGB per la visualizzazione.
Definizione del filtro
filtro = np.array([[0, 1, 0],
[1, -4, 1],
[0, 1, 0]])
- Viene definito il filtro da applicare all'immagine durante l'operazione di convoluzione. Questo filtro è una matrice di dimensioni 3x3.
Applicazione della convoluzione
convoluzione = cv2.filter2D(image, -1, filtro)
- `cv2.filter2D()`: È una funzione di OpenCV utilizzata per applicare l'operazione di convoluzione all'immagine utilizzando il filtro specificato.
Mostrare l'immagine dopo l'operazione di convoluzione
show(convoluzione, "Convolved Image")
- Viene utilizzata la funzione `show()` per mostrare l'immagine risultante dopo l'operazione di convoluzione.
Codice completo
import cv2
import numpy as np
import matplotlib.pyplot as plt
# Carica l'immagine
image_path = "/Applications/MAMP/htdocs/livio.bollini/assets/images/reti-neurali/gatto.jpeg"
image = cv2.imread(image_path)
# Mostra l'immagine originale
def show(image, title="Image"):
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.title(title)
plt.axis('off')
plt.show()
show(image, "Original Image")
# Definisci il filtro
filtro = np.array([[0, 1, 0],
[1, -4, 1],
[0, 1, 0]])
# Applica la convoluzione
convoluzione = cv2.filter2D(image, -1, filtro)
# Mostra l'immagine dopo l'operazione di convoluzione
show(convoluzione, "Convolved Image")
Per l'esecuzione del codice occorre assicurarsi di avere installato le librerie `opencv-python` e `matplotlib`.
Per installare opencv-python a terminale.
pip install opencv-python-headless