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 :

code pour lire sequence d'images DICOM


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 10
    Par défaut code pour lire sequence d'images DICOM
    slt

    je travaille sur GUI , j ai un code pour afficher une sequence d images DCM sur un seul axe mais il ne foctionne pas il y a toujours un erreur :

    Subscripted assignment dimension mismatch.
    aidez moi svp !! je veux lire la sequence d image a partir d un fichier et puis utiliser un slider !
    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
    dossier = uigetdir('C:\Users\user\Desktop\imagesRMN'); 
     
    dirOutput = dir(fullfile(dossier,'*.dcm'));
    fileNames = {dirOutput.name};
    nb_im = numel(fileNames);
     
    k = dicomread(fullfile(dossier,fileNames{nb_im}))
    taille= size(k);
    seq_images= zeros([taille nb_im],'double'); 
    seq_images(:,:,1) = k;
     
    for p = 2:nb_im
         seq_images(:,:,p) = dicomread(fullfile(dossier,fileNames{p}));
         Img=Imagesc(seq_images(:,:,p)); colormap(gray);
         pause(0.2)
     
     
    end
    soit il ya affichage de seulement 4 images dans un dossier sinon pas d affichage !! HELP PLZ

  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 317
    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 317
    Par défaut
    Il nous faut le message d’erreur complet

    Voir la FAQ : Comment exploiter les messages d'erreurs ?

  3. #3
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 10
    Par défaut erreurs
    ca apparait lorsque seulement 4 images sont affichées:

    Warning: Could not find an exact (case-sensitive) match for 'Imagesc'.
    C:\Program Files\MATLAB\R2009b\toolbox\matlab\specgraph\imagesc.m is a case-insensitive match and will be used instead.
    You can improve the performance of your code by using exact
    name matches and we therefore recommend that you update your
    usage accordingly. Alternatively, you can disable this warning using
    warning('off','MATLAB:dispatcher:InexactCaseMatch').
    This warning will become an error in future releases. 
    > In figure2>pushbutton1_Callback at 95
      In gui_mainfcn at 96
      In figure2 at 42
      In @(hObject,eventdata)figure2('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
    Warning: Could not find an exact (case-sensitive) match for 'TITLE'.
    C:\Program Files\MATLAB\R2009b\toolbox\matlab\graph2d\title.m is a case-insensitive match and will be used instead.
    You can improve the performance of your code by using exact
    name matches and we therefore recommend that you update your
    usage accordingly. Alternatively, you can disable this warning using
    warning('off','MATLAB:dispatcher:InexactCaseMatch').
    This warning will become an error in future releases. 
    > In figure2>slider1_Callback at 134
      In gui_mainfcn at 96
      In figure2 at 42
      In @(hObject,eventdata)figure2('slider1_Callback',hObject,eventdata,guidata(hObject))
    et ca apparait lorsque il n ya pas aucune affichage :

    ??? Subscripted assignment dimension mismatch.
    
    Error in ==> please>pushbutton1_Callback at 90
          seq_images(:,:,p) = dicomread(fullfile(rep,fileNames{p}));
    
    Error in ==> gui_mainfcn at 96
            feval(varargin{:});
    
    Error in ==> please at 42
        gui_mainfcn(gui_State, varargin{:});
    
    Error in ==> @(hObject,eventdata)please('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
    
     
    ??? Error while evaluating uicontrol Callback
    Merci pour votre réponse

  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 317
    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 317
    Par défaut
    MATLAB est sensible à la casse. C'est à dire que le nom des fonctions doit être écrit avec des lettres minuscules.

    Par exemple, la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Img = Imagesc(seq_images(:,:,p));
    s'écrit sans le "i" majuscule pour la fonction imagesc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Img = imagesc(seq_images(:,:,p));
    Même chose pour la fonction title

    Pour l'autre problème, je pense que les fichiers DICOM ne contiennent pas tous des images de mêmes dimensions
    Est-ce que tous les fichiers ont la même taille (en octets) ?

  5. #5
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 10
    Par défaut erreurs encore
    alors j ai fait comme tu as dit pour le I majuscule et j' ai pas d erreur pour seulement un dossier qui contient 4 images !
    mais quand je met un dossier qui contient 20 images il ya un erreur et les tailles des images sont entre 178 ko et 196 ko pour ce document mais en total j ai d autres images entre 178 ko et 522 ko merci pour votre réponse ... je suis vraiment deprimée car je veux utiliser un code pour entrer plusieurs images et utiliser un slider .. J'espère vraiment que vous pouvez me aider

  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 317
    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 317
    Par défaut
    Si les images sont de dimensions variables, tu peux utiliser un tableau de cellules pour les stoker :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dossier = uigetdir('C:\Users\user\Desktop\imagesRMN');
     
    dirOutput = dir(fullfile(dossier,'*.dcm'));
    fileNames = {dirOutput.name};
    nb_im = numel(fileNames);
     
    figure
    colormap(gray);
    for p = 1:nb_im
        seq_images{p} = dicomread(fullfile(dossier,fileNames{p}));
        Img = Imagesc(seq_images{p});
        pause(0.2)
    end

Discussions similaires

  1. [Débutant] lire une sequence d'images dicom
    Par Minouchka dans le forum Images
    Réponses: 11
    Dernier message: 22/06/2011, 10h42
  2. Changer le code pour mettre plutôt une image ?
    Par Bruno13 dans le forum Delphi
    Réponses: 1
    Dernier message: 17/11/2006, 18h09
  3. [TP]code pour lire secteur disque
    Par patdez dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 27/10/2004, 21h28
  4. Code pour lire secteur disque & structure FAT
    Par patdez dans le forum Assembleur
    Réponses: 5
    Dernier message: 26/10/2004, 19h52

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