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 :

Extraire les valeurs d'un volume autour d'un voxel donné


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant chercheur en Neuroimagerie
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Norvège

    Informations professionnelles :
    Activité : Assistant chercheur en Neuroimagerie

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Extraire les valeurs d'un volume autour d'un voxel donné
    Bonjour,

    Je cherche à extraire les valeurs d'un volume () autour du voxel (), étant donné un voisinage de côté K (). Mon code actuel est brutal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function values=collectNeighbourValue3D(map,row,column,tube,neighbour)
     
    limitLoop=(neighbour-1)/2;
    l=1;
    values=zeros(neighbour^3,1);
    for i=(-limitLoop:1:limitLoop)
        for j=(-limitLoop:1:limitLoop),
            for k=(-limitLoop:1:limitLoop),
            values(l)=map(row+i,column+j,tube+k);
            l=l+1;
            end
        end
    end
    Je possede une liste de voxels (1 millions) dont je desire extraire les valeurs des voisins, et mon petit doigt me dit qu'il serait possible de faire cela sans boucle pour le rendre plus rapide.
    Ma recherche sur divers forums n'a pas été fructueuse, bien que ce probléme paraisse assez banal.

    Merci d'avance pour vos idées.

  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
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    limitLoop=(neighbour-1)/2;
    values=map(row-limitLoop:row+limitLoop,column-limitLoop:column+limitLoop,tube-limitLoop:tube+limitLoop);
    Il faudrait peut-être rajouter une condition sur neighbour pour vérifier que c'est un nombre pair.
    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 à l'essai
    Homme Profil pro
    Assistant chercheur en Neuroimagerie
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Norvège

    Informations professionnelles :
    Activité : Assistant chercheur en Neuroimagerie

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Simple et efficace.
    Merci

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

Discussions similaires

  1. Extraire les valeurs non nulles d'une matrice
    Par kwatz dans le forum MATLAB
    Réponses: 15
    Dernier message: 06/03/2009, 11h15
  2. Réponses: 4
    Dernier message: 24/12/2008, 20h35
  3. extraire les valeurs différentes d'une colonne
    Par mementox dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 01/12/2007, 16h06
  4. Réponses: 6
    Dernier message: 11/05/2007, 21h51
  5. extraire les valeur d'un champ multivalué
    Par vjamilloux dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/12/2006, 18h09

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