general-discussion > niak_coord_world2vox problem
Showing 1-2 of 2 posts
Display:
Results per page:
Sep 8, 2011  02:09 PM | Alexis Machado
niak_coord_world2vox problem
First sorry for the french language:


Bonjour Pierre

Nous utilisons la version niak enregistre dans

'/data/aces/aces1/pbellec/public/basc-10-2010



Jai une image minc: XXX.mnc dont voici la description

Lorsque je fais mincinfo jai:

image dimensions: xspace zspace yspace

    dimension name         length         step        start

    --------------         ------         ----        -----

    xspace                    176            1        -87.5

    yspace                    240           -1          140

    zspace                    256           -1          128





Lorsque je fais:

mincinfo -attvalue xspace:direction_cosines  XXX.mnc

1 -0 0

mincinfo -attvalue yspace:direction_cosines XXX.mnc

0 1 -0

mincinfo -attvalue zspace:direction_cosines XXX.mnc

0 0 1





Jai des coordonnees d'optodes NIRS dans le referenciel world ( source en rouge

detecteurs en bleu sur les images).  je veux les exprimer dans un repere voxel

pour les afficher sous matlab avec la segmentation de la peau du sujet (

extraite avec les outils mfip MEG )

Voici la procedure suivi:



1- Recuperer la matrice de transformation voxel-world:

[HDR,VOL] = niak_read_vol('PA80_mri.mnc'); %





>>HDR.info.dimension_order='yzx'

>>HDR.info.dimension=[240 256 176]

>>HDR.info.mat=

0        0        1        -87.5000000000000

-1        0        0        140

0        -1        0        128

0        0        0        1



On peut remarquer dans cette derniere matrice  que la base (que jappelle ux uy uz) world (lignes) est

ordonnee ux uy uz alors que la base voxel (colonnes) que jappelle ex ey ez est

ordonnees ey ez ex (Cela parait coherent avec HDR.info.dimension_order).



La derniere colonne represente startx starty startz ( voir mincinfo)





2- Tansformer les coordonnes world en coordonnees voxels avec la fonction niak_coord_world2vox

opt.flag_zero='true';

opt.flag_round='true';

srcPos=niak_coord_world2vox(srcPos,HDR.info.mat,opt);

detPos=niak_coord_world2vox(detPos,HDR.info.mat,opt);



3-Matlab indice correction ( typique a notre application)

srcPos=-srcPos;

detPos=-detPos;



4- Affichage :  on a un probleme de recalage ( Comme si on avait des

rotations non correctes)







jai cependant trouve une solution :

La matrice  HDR.info.mat ne me semblait pas correcte par rapport a ce que jai pu

voir en litterature je lai donc change manuellement pour tester. Les dimensions sont ordonnees ux uy uz pour les lignes (espace world) et ex ey

ez pour les colonnes (espace voxel) ce qui donne:



HDR.info.mat=[1 0 0 -87.5;

              0 -1 0 140 ;

              0 0 -1 128

              0 0 0 1];





Et la en appliquant les etapes 2 3 4 jarrive alors a un bon recalage : voir

figure )




Le mem phenomene a ete observe chez un autre sujet

Penses tu pouvoir me dire d'ou vient ce comportement:

Est ce un bug de la fonction niak?

Une mauvaise utilisation ou comprehension du processus de transformation ?





Merci beaucoup

Alexis
Attachment: figure2.jpg
Sep 13, 2011  04:09 PM | Alexis Machado
RE: niak_coord_world2vox problem : Solved
Problem Solved

Bonjour

Nous avons finament regle le probleme qui venait de lexportation des coordonnees sous brainvisa

Apres verification le code niak_coord_world2vox .m ne contient vraisemblablement aucun bugs

Desole pour le post
Alexis