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 :

aidez moi pour segmenter des images


Sujet :

Images

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 34
    Points : 28
    Points
    28
    Par défaut aidez moi pour segmenter des images
    bonjour je viens de calculer la moyenne et l’Écart type d'une image 3d (matrice) pour 7 images
    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
    dossierSource        = '.\base images\';
    mg=0
    ecg=0
    for i = 1:7
        image = chargerImage(dossierSource,i);    
     
        img=image(:,:,:);
        moyenneimg  = mean(img(:))
        ecarttype = std2(img)
        mg=mg+moyenneimg;
        ecg=ecg+ecarttype;
     
    end
    global moyennedesimages
    global ecarttypegeneral
    moyennedesimages=mg/7
    ecarttypegeneral=(sqrt (ecg))/7
    et j'ai passé a l'etape de segmentation en utilisant cet algorithme comme guide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    pour x =0 à image.width-1 faire {  
        pour y =0 à image.height-1 faire {   
          si (IMGr>=mg-eg) et (IMGr<=mg+eg) alors {            %mg moyenne generale des images ,eg ecart type generale des images
       image. setpixels[x,y] :=rgb(0,0,0) ;       
     }   
       }  
      }
    j'ai pas pu le convertir en matlab aidez moi pleaaaase voici mon 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
    global moyennedesimages
    global ecarttypegeneral
    dossierSource        = '.\base images\';
     
    for i = 1:7
        image = chargerImage(dossierSource,i);
        ligne=size(image,1)
        colonne=size(image,2)
        for j=1:ligne-1
            for k=1:colonne-1
                if (image(j,k))>=(moyennedesimages-ecarttypegeneral) & (image(j,k)<=moyennedesimages+ecarttypegeneral)
                    image(j,k) = image(0,0) %l'erreur s'affiche ici 
     
                end
            end
     
        end
        figure
        imshow(image)
    end

  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 : 52 882
    Points
    52 882
    Par défaut
    Renomme la variable image

    La syntaxe rgb(0,0,0) est le triplet de valeurs correspondant à la couleur noire

    Dans ton cas, tu peux sans doute faire :

    Tout dépend de la palette de couleurs utilisées : Couleurs indexées

    Pour finir, les bornes des itérations ne sont pas bonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for j = 1:ligne
        for k = 1:colonne
     
        end
    end
    Car l'algorithme que tu nous montres est basé sur un indexage qui commence à 0 alors que celui de MATLAB commence à 1 (Zero-based numbering - Usage in programming languages).
    Tu passes donc d'un intervalle [0 n-1] à un intervalle [1 n]
    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
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    c bon j'ai réglé
    mais il ya une erreur
    ??? Attempted to access image(0,0); index must be a positive integer or logical.
    
    Error in ==> seg at 13
                if (image(j,k))>=(moyennedesimages-ecarttypegeneral) &
                (image(j,k)<=moyennedesimages+ecarttypegeneral)

  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 : 52 882
    Points
    52 882
    Par défaut
    Montre nous le code que tu utilises…

    Et, pour la troisième fois, change le nom de la variable image
    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
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    voici 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
    global moyennedesimages
    global ecarttypegeneral
    dossierSource        = '.\base images\';
     
    for i = 1:7
        img = chargerImage(dossierSource,i);
        ligne=size(img,1)
        colonne=size(img,2)
        for j=0:ligne-1
            for k=0:colonne-1
                if (img(j,k))>=(moyennedesimages-ecarttypegeneral) & (img(j,k)<=moyennedesimages+ecarttypegeneral)
                    img(j,k) = 0 ; 
     
                end
            end
     
        end
        figure
        imshow(img)
    end

  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 : 52 882
    Points
    52 882
    Par défaut
    Les indices commencent à 1 avec MATLAB. Les bornes des itérations sur j et k ne sont donc pas bonnes.

    Je t'ai donné la solution dans un précédent message.
    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
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    ouiiii c'est vrai j'ai pas fait attention merciiiii merciiii très contente
    juste la derniere question comment je peux sauvegardé les images des resultats

  8. #8
    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 : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par minatta Voir le message
    comment je peux sauvegardé les images des resultats
    Avec la fonction imwrite
    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)

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2017
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2017
    Messages : 34
    Points : 28
    Points
    28
    Par défaut
    ouii c sur mais j'ai pas compris fullfile,pathname,filename
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     imwrite(img, fullfile('.',pathname,filename), 'jpg');
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     figure
        imshow(img)
    imwrite(img,'imagesegmente','jpg')
    encore des erreurs
    ??? Error using ==> imwrite at 457
    Can't open file "imagesegmente" for writing.
    You may not have write permission.

    Error in ==> seg at 23
    imwrite(img,'imagesegmente','jpg')

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par minatta Voir le message
    ouii c sur mais j'ai pas compris fullfile,pathname,filename
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     imwrite(img, fullfile('.',pathname,filename), 'jpg');
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     figure
        imshow(img)
    imwrite(img,'imagesegmente','jpg')
    encore des erreurs
    ??? Error using ==> imwrite at 457
    Can't open file "imagesegmente" for writing.
    You may not have write permission.

    Error in ==> seg at 23
    imwrite(img,'imagesegmente','jpg')
    As tu essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imwrite(img,'imagesegmente.jpg')

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2015, 02h02
  2. segmentation des images couleurs pour l'indexation
    Par Elasnaoui dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 12/01/2014, 17h02
  3. B-Spline Cubique pour la segmentation des images
    Par ikram2008 dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 25/04/2013, 19h57
  4. Appliquer Voronoi pour segmenter des images
    Par karim_baa dans le forum Images
    Réponses: 1
    Dernier message: 09/05/2008, 17h32
  5. aide moi pour la segmentation des images
    Par gattal dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 08/03/2008, 12h42

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