-->

Intelligenza Artificiale

A un certo punto non fu più la biologia a dominare il destino dell'uomo, ma il prodotto del suo cervello: la cultura.
Cosicché: "Le uniche leggi della materia sono quelle che la nostra mente deve architettare e le uniche leggi della mente sono architettate per essa dalla materia".
JAMES CLERK MAXWELL

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 OpenCV
Ecco 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