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

MATLAB Discussion :

matlab image fcm


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    matlab
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : matlab
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut matlab image fcm
    Bonsoir tt le monde

    Je suis en train de faire la classification d'une image avec FCM en matlab. Voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    I1 = (imread('file90.png'));
    s=0;
    data = reshape(I1, [], 1);
     n=size(I1,1);
     m=size(I1,2);
     k=0;
     
    for i=1:n+m
     
      options = [data NaN NaN 0];
        [centers,U] = fcm(data,2);
     
        maxU = max(U);
        index1 = find(U(1,:) == maxU);
        index2 = find(U(2,:) == maxU);
     
        index3 = find(maxU < 0.6);
     
        averageMax = mean(maxU);
     
        subplot(2,2,i)
        plot(data(index1,1),data(index1,2),'ob')
        hold on
        plot(data(index2,1),data(index2,2),'or')
        plot(data(index3,1),data(index3,2),'xk','LineWidth',2)
        plot(centers(1,1),centers(1,2),'xb','MarkerSize',15,'LineWidth',3)
        plot(centers(2,1),centers(2,2),'xr','MarkerSize',15,'LineWidth',3)
        hold off
        title(['M = ' num2str(M(i)) ', Ave. Max. = ' num2str(averageMax,3)])
    end
    L'erreur

    Error using horzcat
    Dimensions of matrices being concatenated are not consistent.
    
    Error in Untitled (line 27)
      options = [data NaN NaN 0];
    aidez moi svp

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Soit tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = reshape(I1, [], 1);
    Puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options = [data ; NaN ; NaN ; 0];
    Soit tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = reshape(I1, 1, []);
    Puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    options = [data NaN NaN 0];
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Candidat au Club
    Homme Profil pro
    matlab
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : matlab
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    il y a un autre problème au niveau de la fonction fcm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [centers,U,data(i)] = fcm(data,2,options);
    l'erreur
    Error using fcm (line 73)
    The exponent should be greater than 1!
    
    Error in Untitled (line 28)
        [centers,U,data(i)] = fcm(data,2,options);

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Es-tu sûr d'avoir bien compris à quoi correspond l’argument options ?

    => https://fr.mathworks.com/help/fuzzy/...uv_wo_-options
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Candidat au Club
    Homme Profil pro
    matlab
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : matlab
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    options c'est le Nombre maximum d'itérations , lorsque je cherche la fonction fcm qui permet de faire la classification d'une image, je la trouve sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [centers,U] = fcm(data,Nc,options);

    je suis débutant en matlab, je n'ai pas compris comment je corrige le code afin de trouver l'image classifiée avec fcm


    mercii d'avance

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Citation Envoyé par daniel200 Voir le message
    options c'est le Nombre maximum d'itérations
    Pas seulement. relis bien la documentation.

    Sinon, pourquoi mets-tu la variable data dans la variable options ?

    La première valeur de options doit être un scalaire supérieur à 1 :
    Citation Envoyé par Documentation de fcm
    Exponent for the fuzzy partition matrix, U, specified as a scalar greater than 1.0.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Candidat au Club
    Homme Profil pro
    matlab
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : matlab
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    oui vous avez raison. J'ai changé la fonction fcm avec deux variables seulement, le même problème s'affiche


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [centers,U] = fcm(data,3);

    comment je change le code afin de trouver une image classifiée avec fcm.

    mercii d'avance

  8. #8
    Candidat au Club
    Homme Profil pro
    matlab
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : matlab
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Bonjour

    avec ce code aussi ça marche pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    clc
    clear all
    I1 = (imread('ndvi88.hdf'));
    figure
     
    figure;imshow(I1,[]);impixelinfo; % Show Image I
     
    %data = [I(:) I2(:)]; % data array
    data = I1(:);
     
    [center,U,obj_fcn] = fcm(data,4); % Fuzzy C-means classification with 4 classes

    aidez moi svp!!!

Discussions similaires

  1. Classification image fcm
    Par nerinee dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/04/2019, 09h58
  2. vc++ & matlab & image
    Par meera dans le forum Visual C++
    Réponses: 2
    Dernier message: 23/08/2006, 11h49

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