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 :

Orientation principale d'un cylindre 3D


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2018
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Orientation principale d'un cylindre 3D
    Hello,

    Je cherche à déterminer l'orientation principale d'un cylindre 3D en calculant les moments d'inertie de la FFT. Mon algo est le suivant :
    1) calculer la FFT de l'image (fftn)
    2) calculer le carré de son module, puis le centrer (fftshift)
    3) calculer la matrice d'inertie de la matrice calculée à l'étape 2.
    4) décomposer en éléments propres la matrice d'inertie, puis classer les vecteurs propres en fonction des valeurs propres
    L'orientation principale est le vecteur propre correspondant à la plus grande valeur propre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    im_fft = fftn(a); % FFTN de l'image source 'a' (taille : 128*128*128)
    im_dsp = im_fft.*conj(im_fft); % module carré de la FFT
    im_fft_cent = fftshift(im_dsp); % centrage 
    [eig_vals, eig_vects] = Centered_inertia(im_fft_cent,'descend',params); % fonction maison qui calcule et classe les vecteurs propres de la matrice d'inertie de la FFT de l'image
    disp(eig_vects(:,1)) % affiche les coordonnées cartésiennes du vecteur "orientation principale"
    imagesc(squeeze(sum(a,3))), axis image, colormap gray, hold on  % affiche la z-projection de l'image source
    eig_vects=80.*eig_vects; % scaling des vecteurs propres pour plus de lisibilité à l'affichage
    quiver(64-eig_vects(2,1)/2,64-eig_vects(1,1)/2,eig_vects(2,1),eig_vects(1,1),'color','r','ShowArrowHead', 'off','Linewidth',2) % superpose la z-projection du vecteur "orientation principale" sur la z-projection de l'image
    Voilà pour l'idée générale qui marche très bien en 2D. Par contre en 3D j'ai systématiquement une erreur de quelques degrés par rapport à l'orientation réelle du cylindre (que je connais par ailleurs). Avez-vous une idée de l'origine du problème ? Je précise que je suis bien conscient de l'existence d'autres méthodes plus performantes pour calculer l'orientation du cylindre (par exemple, calculer directement la matrice d'inertie de l'image elle-même et pas de sa TF), mais je voudrais quand même comprendre ce qui cloche avec FFTN.

    Je poste une capture d'écran dès que j'arrive à comprendre comment faire.
    MAJ : l'image source + superposition du vecteur orientation est visible ici.

    Merci !

    Daniel

  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,

    sans avoir un exemple d'image, difficile de vous répondre. Quel est le format de votre image ? Pouvez-vous essayer un autre format ? (jpg, png ou gif)
    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2018
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    J'ai toujours la même erreur lorsque j'essaie de poster une image quelque soit son format, idem pour une pièce-jointe en pdf. Par contre je viens de mettre un lien vers l'image dans mon post.
    L'image source est au format RAW/MHD.

    Merci et bonne journée à tous,
    Daniel

Discussions similaires

  1. orientation de cylindre
    Par bibi1986 dans le forum OpenGL
    Réponses: 6
    Dernier message: 30/07/2009, 14h02
  2. Orientation d'un cylindre
    Par Amroth dans le forum OpenGL
    Réponses: 5
    Dernier message: 16/07/2009, 12h32
  3. [SGBDOO] Base de données orientée objet
    Par Jaona dans le forum Décisions SGBD
    Réponses: 19
    Dernier message: 14/04/2003, 11h07
  4. Fenêtre principale et secondaire
    Par FranT dans le forum Composants VCL
    Réponses: 9
    Dernier message: 31/07/2002, 19h25
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49

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