« Clustering par K-means, segmentation d'image » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 32 : Ligne 32 :
* "numpy", qui va nous servir à effectuer les calculs de manières bien plus rapide.
* "numpy", qui va nous servir à effectuer les calculs de manières bien plus rapide.
* "PIL" pour le traitement des images.
* "PIL" pour le traitement des images.

<pre>
from random import *
from PIL import Image
import numpy as np
</pre>



== Transformation des données en tableaux ==
== Transformation des données en tableaux ==
Ligne 42 : Ligne 49 :


== Modification des couleurs de l'image ==
== Modification des couleurs de l'image ==



= Résultats =
= Résultats =

Version du 10 mai 2021 à 14:08

Etudiant : Paul AUBRY

Tuteur : Jacques-Olivier LACHAUD


Introduction : Clustering par k-means

Le clustering par k-means ou segmentation d'image, est une méthode de regroupement de points qui se ressemblent la plus. Ici, dans le cas d'une image, nous rassembleront des points en fonction de leurs coordonnées et de leurs couleurs.

Algorithme pour l'image

Nous allons voir ici, comment procéder de manière théorique, pour réaliser un clustering. Tout d'abord, nous devons choisir k points aléatoirement, qui seront les centroïdes.

Ensuite, nous allons affecter chaque point de l'image à un cluster. Pour cela, il faut calculer la distance entre le point, et chaque k. La distance la plus courte nous permettra de déterminer quel cluster choisir.

Pour calculer la distance on utilise la formule suivante :

  • formule *

Lorsque les clusters sont définis, on calcul la moyenne de chaque cluster, afin de récupérer de nouveaux centres.

On réitère les actions vus précédemment mais cette fois-ci avec les nouveaux centres.

Dès que l'on obtient des centres "stable", on peut modifier l'image.

Réalisation grâce à Python

Pour ce faire, il faut installer plusieurs bibliothèques.

  • "numpy", qui va nous servir à effectuer les calculs de manières bien plus rapide.
  • "PIL" pour le traitement des images.
from random import *
from PIL import Image
import numpy as np


Transformation des données en tableaux

Calcul des distances

Attribution aux clusters

Nouveaux Centroïdes

Modification des couleurs de l'image

Résultats