IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Images Discussion :

Algorithme kmeans


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 36
    Par défaut Algorithme kmeans
    bonjour ,

    quelqu'un saurait il implementer l'algorithme kmean en matlab ?

    j'aivu qu'il existait une fonction kmeans dans matlab mais je n'arrive pas a l'utiliser pour segmenter une image.

    http://www.mathworks.com/help/toolbox/stats/kmeans.html

    en effet je pars d'une image 512x512.

    comment puis-je utiliser la fonction kmeans alors pour en déduire mon image segmentée en k cluster et l'afficher ?


    merci !

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    un exemple de segmentation utilisant les kmeans si tu travailles sur les couleurs :
    Color-Based Segmentation Using K-Means Clustering
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 36
    Par défaut
    non je travaille sur des images de cerveau IRM en noir et blanc

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    plutôt en niveau de gris, non?

    le principe reste le même. Qu'as-tu essayé de faire et ou bloques-tu?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 36
    Par défaut
    oui pardon en niveaux de gris

    jai repris le code du lien que vous m'avez envoyé mais la redimension des resultats via la commande reshape ne semble pas fonctionner :


    j'ai mon image X à l'origine de taille 512 x 512 en niveau de gris.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    nrows = size(X,1);
    ncols = size(X,2);
    X = reshape(X,nrows*ncols,2);
     
    nColors = 3;
    % repeat the clustering 3 times to avoid local minima
     
    [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean', .
    ..
                                          'Replicates',3);
     
     
    pixel_labels = reshape(cluster_idx,nrows,ncols);
    imshow(pixel_labels,[]), title('image labeled by cluster index');

    j'obtiens une erreur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ??? Error using ==> reshape
    To RESHAPE the number of elements must not change.
     
    Error in ==> script7 at 13
    X = reshape(X,nrows*ncols,2);

    pourriez vous m'aider ?
    merci beaucoup

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    C'est normal puisque tu as une image en niveau de gris (donc une seule composante par pixel).
    Change comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = reshape(X,nrows*ncols,1);
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  7. #7
    Membre régulier
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Par défaut question pour le modérateur
    bonjour, j'ai presque la même problème, mon question est concernant le code donné par le modérateur: Mr. pour quoi le nombre de répétition de l'algorithme k-means est égal à 3? l'algorithme dit qu'on doit répéter les itérations jusqu’à "pas de changement dans les clusters". n'est ce pas?
    et merci d'avance

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour 1walla,

    Tu as bien compris le principe, le paramètre 'replicate' comme l'indique la documentation :
    Citation Envoyé par doc kmeans
    'replicates'

    Number of times to repeat the clustering, each with a new set of initial cluster centroid positions. kmeans returns the solution with the lowest value for sumd. You can supply 'replicates' implicitly by supplying a 3D array as the value for the 'start' parameter.
    sert à exécuter plusieurs fois l'algorithme kmeans à partir de centroïds de départ différents. On garde à la fin la solution donnant les distances minimales (sortie sumd).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ALgorithme Kmeans
    Par khalil.ajmi dans le forum Images
    Réponses: 3
    Dernier message: 11/12/2013, 15h25
  2. Algorithme Kmeans: nombre de noyaux
    Par ikuzar dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 27/02/2012, 18h57
  3. L'algorithme des kmeans
    Par wafaa2009 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/07/2009, 17h51
  4. Implémentation de l'algorithme de kmeans
    Par kevin2008 dans le forum C++
    Réponses: 0
    Dernier message: 18/04/2008, 11h29
  5. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo